这个真的是在烤我的面条......
我有一些代码。当我运行它时,Visual Studio会抱怨未处理的异常。而且,当然, 是一个例外。但是,它在try / catch块内部,所以... 如何“未处理”?
我一直在搜索,我能找到的唯一相关命中与LINQ有关。但我没有使用任何LINQ,所以不可能。
相关代码如下所示:
try
{
method.Invoke(target, new object[0]);
}
catch (MyException e)
{
Console.WriteLine(e);
}
被Invoke()
命中的方法每次都不同。其中一些方法确实会抛出异常 - 这很好。但这就是为什么我把它放在试块中!我不明白为什么VS抱怨没有处理异常。
(是的,我已经检查过抛出的异常是MyException
个对象。)
此时,我唯一的猜测是它与使用反射有某种关系。我真的需要解决这个问题......有什么建议吗?
答案 0 :(得分:4)
您应该阅读MethodInfo.Invoke
的文档。
<强>例外强>
TargetInvocationException - 调用的方法或构造函数抛出异常。
<强>说明强>
如果被调用的方法抛出异常,
Exception.GetBaseException
方法将返回异常。
您的异常包含在TargetInvocationException
。