【问题标题】:Unhandled exception in try/catch blocktry/catch 块中未处理的异常
【发布时间】:2013-07-24 11:18:51
【问题描述】:

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

我有一些代码。当我运行它时,Visual Studio 抱怨一个未处理的异常。而且,果然,个例外。但是,它明显地位于 try/catch 块中,所以... 它是如何“未处理”的??

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

相关代码如下所示:

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

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

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

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

【问题讨论】:

  • 您的代码只包含MyException 的实例,您被告知什么执行未处理?
  • @TI 正如我所说,报告的异常与我正在捕获的异常完全匹配,包括完整的命名空间路径。

标签: c# exception-handling


【解决方案1】:

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

例外情况

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

备注

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

您的异常被包裹在 TargetInvocationException 中。

【讨论】:

  • 天啊。哎哟......这只是偷偷摸摸。
  • 明确一点:我改变了异常类型,VS still 打破了异常。但是,它现在让我在异常之后继续......
猜你喜欢
  • 1970-01-01
  • 2011-01-01
  • 2017-02-23
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多