为什么在C#中处理同一异常时会出现两个不同的结果?

为什么在C#中处理同一异常时会出现两个不同的结果?,c#,exception,unhandled,C#,Exception,Unhandled,我在两个程序中处理了相同的异常,但得到了不同的结果。我不知道为什么。 第一个结果是程序无法捕获的结果 Scapshot1:www.freemagehosting.net/uploads/e2b3743a3.png 第二个是程序成功捕获的 Scapshot2:www.freemagehosting.net/uploads/6ab7564999.png 为什么我会有如此不同的想法?好吧,你并没有提供太多的背景。检查事项: 它们是否是相同类型的应用程序(WPF、WinForms、Silv

我在两个程序中处理了相同的异常,但得到了不同的结果。我不知道为什么。

第一个结果是程序无法捕获的结果

Scapshot1:www.freemagehosting.net/uploads/e2b3743a3.png

第二个是程序成功捕获的

Scapshot2:www.freemagehosting.net/uploads/6ab7564999.png


为什么我会有如此不同的想法?

好吧,你并没有提供太多的背景。检查事项:

  • 它们是否是相同类型的应用程序(WPF、WinForms、Silverlight、Console等)
  • 他们使用的是同一版本的.NET吗
  • 它们是否在同一版本的Windows上运行
  • 它们是否有相同的代码来响应未处理的异常
从我所看到的,在#1中,您正在调试器中运行。在#2中,你不是


事实上,我将假设异常是完全相同的,因为消息是相同的。没什么区别,瞧。

我不确定我是否理解,看起来是同一个错误,但是

  • pic1-未处理的错误
  • pic2-已处理错误

请提供更多信息

调试器在遇到异常时的行为可能会有很大差异


在调用Application.Run()之后,您无法更改Application.UnhandledExceptionMode,因此很明显,这不是捕获异常的方法


这将使AppDomain.UnhandledException处于未处理状态。是,调试器将在引发该事件之前中断该异常。很好的特性,允许您调试异常原因。只需按F5继续执行即可触发事件处理程序。没有证据表明您在第二个屏幕截图中使用了调试器,看起来您是用Ctrl+F5启动的。

错误的屏幕截图类似于用户通过电子邮件向您发送word文档,扫描其错误的照片。请为那些被免费图像托管站点阻止的用户粘贴错误文本。oops。它再次在我的catch块中引发异常