为什么在C#中处理相同的Exception时有两个不同的结果?

时间:2010-08-16 09:13:16

标签: c# exception unhandled

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

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

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

,第二个是程序成功捕获的程序

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

为什么我会有这样的不同?

5 个答案:

答案 0 :(得分:3)

嗯,你没有提供太多的背景信息。要检查的事项:

  • 它们是相同类型的应用程序(WPF,WinForms,Silverlight,控制台等)吗?
  • 他们使用相同版本的.NET吗?
  • 它们是否在相同版本的Windows上运行?
  • 对未处理的异常做出反应是否有相同的代码?

答案 1 :(得分:3)

从我所看到的,在#1中,您正在调试器中运行。在#2你不是。

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

答案 2 :(得分:1)

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

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

请提供更多信息

答案 3 :(得分:1)

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

Exception Handling (Debugging)

答案 4 :(得分:1)

在调用Application.Run()之后,你无法更改Application.UnhandledExceptionMode,所以很明显,这不会是捕获异常的那个。

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