我有一个64位的Win7系统,使用VS2010和.Net Framework 4.0。在一个Winform应用程序中,我收到了来自第三方组件的异常,我试图用Try-Catch捕获这个异常,但它不起作用!为什么?如果我取消选中CLR异常,它就能正常工作,但由于这个已知问题,我被迫选择它:为什么无法在表单加载时捕获异常?如果我按F10,它会继续进入catch语句!!请看下面的图片:
看起来你在这里调用了一个非托管的dll。尝试使用ExternalException Class捕获此异常。这可能对你有用,但一旦你超出了.NET运行时的控制范围,就完全取决于非托管代码;.NET运行时无法做任何事情。
ExternalException
有一个基类 Exception
。因此,它会被 catch (Exception)
捕获。 - Stephan请在 Visual Studio 2010 的“工具”->“选项”->“调试”->“常规”选项卡中进行设置。当异常跨越 AppDomain 或托管/本机边界时中断 (仅限托管代码)
Exception
当然应该捕获这个异常。你尝试过显式地捕获抛出的异常类型吗? - MoonKnighttry
块内时,你尝试按F5键了吗? - Stephancatch
块,则这是预期的行为。相反,您希望发生什么?您已经配置了调试器以在抛出CLR异常时中断,以解决64位环境问题。这意味着每次抛出异常时调试器都会中断。如果您继续,则catch
块将像往常一样执行。 - Cody Gray