【问题标题】:How to create global error handler in Windows Form Application?如何在 Windows 窗体应用程序中创建全局错误处理程序?
【发布时间】:2011-06-19 06:28:17
【问题描述】:

我认为有一个组件可以创建全局错误处理。

例如,当发生不好的事情时,我自己会抛出异常,例如

throw new ArgumentNullException("playlist is empty");

如何在全球范围内捕获它?

【问题讨论】:

    标签: c# .net error-handling components global


    【解决方案1】:
    【解决方案2】:

    您可以通过AppDomain.UnhandledExceptionApplication.ThreadException 完成此操作。

    有关这些事件的作用以及这些事件的区别的更多详细信息,请参阅文档。这个想法是AppDomain.UnhandledException 总是有效的。 Application.ThreadException 专门用于未处理的 UI 异常。

    【讨论】:

    • AppDomain.UnhandledException 也适用于 Compact Framework。
    • 使用 AppDomain.UnhandledException 事件时要小心 Revision note:我被 Phillip Haack 指出重要的遗漏。其他常见的错误来源是 Application.ThreadException 事件。使用时有很多注意事项。
    【解决方案3】:

    全局处理异常...

    Windows 应用程序

    System.Windows.Forms.Application.ThreadException 事件

    一般用在 Main 方法中。参考MSDN Thread Exception

    Asp.Net

    System.Web.HttpApplication.Error 事件

    通常用于 Global.asax 文件。参考MSDN Global.asax Global Handlers

    控制台应用程序

    System.AppDomain.UnhandledException 事件

    一般用在 Main 方法中。参考MSDN UnhandledException

    【讨论】:

    • 控制台或服务应用程序AppDomain.CurrentDomain.UnhandledException
    猜你喜欢
    • 2011-09-23
    • 2013-12-17
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多