0

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

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

Scapshot1:www.freeimagehosting.net/uploads/e2b37433a3.png

第二个是程序成功捕获的

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

为什么我有这么不同?

4

5 回答 5

3

好吧,您并没有真正提供太多背景信息。检查事项:

  • 它们是同一类型的应用程序(WPF、WinForms、Silverlight、控制台等)吗?
  • 他们是否使用相同版本的 .NET?
  • 它们是否在相同版本的 Windows 上运行?
  • 他们是否有相同的代码来响应未处理的异常?
于 2010-08-16T09:19:13.087 回答
3

据我所知,在#1 中,您正在调试器中运行。在#2中,您不是。

事实上,我会假设异常是完全相同的,因为消息是相同的。没有区别,IOW。

于 2010-08-16T09:19:36.330 回答
1

我不确定我是否理解,看起来它是同样的错误但是

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

请提供更多信息

于 2010-08-16T10:35:50.343 回答
1

调试器在面对异常时的行为可能会有很大的不同。

异常处理(调试)

于 2010-08-16T10:49:04.770 回答
1

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

这留下了 AppDomain.UnhandledException。是的,调试器将在引发该事件之前中断异常。不错的功能,允许您调试异常原因。只需按 F5 继续执行以触发事件处理程序。没有证据表明您在第二个屏幕截图中使用了调试器,看起来您是使用 Ctrl+F5 启动的。

于 2010-08-16T13:04:36.117 回答