gpt4 book ai didi

c# - Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 之间有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 03:35:37 28 4
gpt4 key购买 nike

好吧,这是一个简单的:

  • Application.ThreadException
    AppDomain.CurrentDomain.UnhandledException 有什么区别>?

  • 我需要同时处理这两者吗?

谢谢!

最佳答案

Application.ThreadException 特定于 Windows 窗体。 Winforms 运行事件处理程序以响应 Windows 发送给它的消息。例如 Click 事件,我相信你知道它们。如果这样的事件处理程序抛出异常,则 Winforms 消息循环内会有一个后退停止器来捕获该异常。

那个 backstop 触发了 Application.ThreadException事件。如果您不覆盖它,用户将获得 ThreadExceptionDialog .这使他可以忽略异常并继续运行您的程序。顺便说一句,这不是个好主意。

您可以通过调用 Application.SetUnhandledExceptionMode() 来禁用此行为在 Program.cs 的 Main() 方法中。如果没有适当的支持,当线程死于未处理的异常时,通常会发生这种情况:AppDomain.UnhandledException触发,程序终止。

Fwiw:“ThreadException”是一个非常糟糕的名称选择。它与线程无关。

关于c# - Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2014562/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com