如何在 Windows 窗体应用程序中创建全局错误处理程序?
Posted
技术标签:
【中文标题】如何在 Windows 窗体应用程序中创建全局错误处理程序?【英文标题】:How to create global error handler in Windows Form Application? 【发布时间】:2011-06-19 06:28:17 【问题描述】:我认为有一个组件可以创建全局错误处理。
例如,当发生不好的事情时,我自己会抛出异常,例如
throw new ArgumentNullException("playlist is empty");
如何在全球范围内捕获它?
【问题讨论】:
【参考方案1】:MSDN 是你的朋友:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx
【讨论】:
【参考方案2】:您可以通过AppDomain.UnhandledException
或Application.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
以上是关于如何在 Windows 窗体应用程序中创建全局错误处理程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Visual Studio中创建Winform窗体应用