try / catch块中未处理的异常

时间:2013-07-24 11:18:51

标签: c# exception-handling

这个真的是在烤我的面条......

我有一些代码。当我运行它时,Visual Studio会抱怨未处理的异常。而且,当然, 是一个例外。但是,它在try / catch块内部,所以... 如何“未处理”?

我一直在搜索,我能找到的唯一相关命中与LINQ有关。但我没有使用任何LINQ,所以不可能。

相关代码如下所示:

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

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

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

此时,我唯一的猜测是它与使用反射有某种关系。我真的需要解决这个问题......有什么建议吗?

1 个答案:

答案 0 :(得分:4)

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

  

<强>例外

     

TargetInvocationException - 调用的方法或构造函数抛出异常。

     

<强>说明

     

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

您的异常包含在TargetInvocationException