2012-02-09 5 views
-1

Язык: C#Не удалось обработать исключения внутри резьбы

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

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

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 

Может ли один помочь мне ...

+2

Не смотря на то, что код генерирует это ... –

+1

Пожалуйста, разместите пример кода. –

+0

Я думаю, что он генерирует исключение в Backgroundworker1_dowork() перед выполнением fun1() или пропускает fun1(). См. Стек вызовов вашего исключения – evpo

ответ

0

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

Перед тем, как попробовать fun1, я поставил Debug.WriteLine("In fun1");. Если вы не видите это на выходе, вы знаете, что вызов fun1 не работает. Если вы видите этот вывод, вы знаете, что блок catch не работает.

Смежные вопросы