try/catch块中出现未处理的异常

本文关键字:未处理 异常 catch try | 更新日期: 2023-09-27 18:24:45

这个真的在烤我的面条。。。

我有一些代码。当我运行它时,VisualStudio会抱怨一个未处理的异常。当然,是一个例外。然而,它公然在try/catch块内,所以…这是如何"未处理"的

我到处找过,唯一能找到的相关热门是与LINQ有关的。但我没有使用任何LINQ,所以不可能是这样。

相关代码如下所示:

try
{
  method.Invoke(target, new object[0]);
}
catch (MyException e)
{
  Console.WriteLine(e);
}

Invoke()每次命中的方法都不一样。其中一些方法确实会抛出异常——这很好。但这就是为什么我把它放在试块里!我不明白VS为什么抱怨没有处理异常。

(是的,我已经检查了抛出的异常是否是MyException对象。)

在这一点上,我唯一的猜测是,它在某种程度上与使用反射有关。我真的需要解决这个问题。。。有什么建议吗?

try/catch块中出现未处理的异常

您应该阅读MethodInfo.Invoke的文档。

异常

TargetInvocationException-被调用的方法或构造函数引发异常。

备注

如果被调用的方法抛出异常,Exception.GetBaseException方法将返回该异常。

您的异常正在封装在TargetInvocationException中。