Не удалось обработать исключения внутри потока - PullRequest
0 голосов
/ 09 февраля 2012

Язык: C #

Я использую фонового работника, чтобы запустить свою долгую работу. Я вижу исключение, которое я должен игнорировать. Когда я обрабатываю исключение в блоке кода, оно не перехватывается в самом блоке. Вместо этого это пойман, где я использовал dowork фонового работника.

Проблемная ситуация

    Backgroundworker1_dowork()
    {
      try
       {
         fun1();
       }
      catch(Exception e)
       {
      console.writeline("bg block");
        }
    }
   void fun1()
   {
     try
        { 
            throw new exception("ex1");
        }
     catch(Exception ex)
       { 
           Console.writeline("code block");
       }
    }

   output: bg block Expected: code block

Может ли кто-нибудь помочь мне ...

1 Ответ

0 голосов
/ 09 февраля 2012

Код, который вы предоставите, не будет компилироваться, поэтому трудно определить проблему. Тем не менее, вызов fun1 не выполняется или блок catch в fun1 не выполняется.

Я бы поставил Debug.WriteLine("In fun1"); перед попыткой fun1. Если вы не видите этого в выводе, то вы знаете, что вызов fun1 не удался. Если вы видите этот вывод, то вы знаете, что блок catch не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...