无法处理线程内的异常

本文关键字:异常 线程 处理 | 更新日期: 2023-09-27 18:23:47

语言:C#

我需要一个幕后工作人员来管理我的长期工作。我碰巧看到一个例外,我应该忽略它。当我在代码块中处理异常时,它不会被块本身捕获。相反,它被抓住了,在那里我调用了后台工作人员的工作。

问题情况

    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

有人能帮我吗…

无法处理线程内的异常

您提供的代码不会编译,因此很难确定问题所在。然而,对fun1的调用失败了,或者fun1中的catch块失败了。

我会在尝试fun1之前先放一个Debug.WriteLine("In fun1");。如果您在输出中没有看到这一点,那么您就知道对fun1的调用失败了。如果您看到这个输出,那么您就知道catch块失败了。