【发布时间】:2012-05-31 21:24:00
【问题描述】:
我有一个带有 Win7 的 64 位系统,我使用带有 .Net Framework 4.0 的 VS2010。
在 Winform 应用程序中,我从第三方组件获得异常,我正在尝试使用 Try-Catch 捕获此异常,但它不起作用!
为什么?
更新
如果我取消选中 CLR Exceptions 它可以正常工作,但由于这个已知问题我不得不检查它:Why the form load can't catch exception?
如果我按 F10,它会继续进入 catch 语句!
【问题讨论】:
-
这看起来很奇怪。
Exception当然应该抓住这一点。您是否尝试过显式捕获抛出的异常类型? -
我试图修正标题中的语法,然后我意识到这是故意的。懒洋洋的。 (SO 拒绝与旧问题同名的新问题)。
-
您已将调试器配置为在抛出异常时中断。当程序在
tryblock 内停止时,您是否尝试按 F5? -
什么是完整的堆栈跟踪? CAENRFIDException,确实扩展了 System.Exception,我假设。您是否尝试过检查其他异常复选框,以防万一它是其中之一?此外,“未捕获异常”。 catch 的范式是 catch/caught/caught,它是一个强动词。 :)
-
好的,如果在调试器中按下
F11或F5或其他一些“继续”按钮会导致catch块被执行,那么这是预期的行为。相反,你希望发生什么?您已将调试器配置为在引发 CLR 异常时中断,以解决 64 位环境问题。这意味着每次抛出一个调试器都会中断。如果您继续,您的catch块将照常执行。
标签: c# .net winforms exception-handling