【问题标题】:Why two different results while handling the same Exception in C#?为什么在 C# 中处理相同的异常时会出现两个不同的结果?
【发布时间】:2010-08-16 09:13:16
【问题描述】:

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

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

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

第二个是程序成功捕获的

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

为什么我有这么不同?

【问题讨论】:

  • 错误的屏幕截图类似于用户通过电子邮件向您发送带有错误照片扫描的 word 文档。对于那些被免费图片托管网站屏蔽的人,请粘贴错误文本

标签: c# exception unhandled


【解决方案1】:

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

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

【讨论】:

  • 哎呀。它再次在我的 catch 块中引发异常
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    请提供更多信息

    【讨论】:

      【解决方案4】:

      调试器在面对异常时的行为可能千差万别。

      Exception Handling (Debugging)

      【讨论】:

        【解决方案5】:

        在 Application.Run() 被调用后,您无法更改 Application.UnhandledExceptionMode,因此很明显这不会捕获异常。

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

        【讨论】:

          猜你喜欢
          • 2012-06-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-07
          • 2019-06-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多