.NET-实现“捕获所有异常处理程序”的最佳方法是什么

我想知道最好的方法是“如果所有其他方法都失败了,那就赶上它”。

我的意思是,您正在处理应用程序中尽可能多的异常,但是仍然有一定的错误,因此我需要拥有一些可以捕获所有未处理的异常的东西,以便我可以收集信息并将其存储在数据库中或提交它们到网络服务。

AppDomain.CurrentDomain.UnhandledException事件是否捕获所有内容?即使应用程序是多线程的?

旁注:Windows Vista公开了本机API函数,该函数允许任何应用程序在崩溃后恢复自身...现在想不起来的名称...,但我宁愿不使用它,因为我们的许多用户仍在使用Windows XP。


胡子哥哥
浏览 521回答 3
3回答

忽然笑

在主线程上,您具有以下选项:控制台或服务应用程序: AppDomain.CurrentDomain.UnhandledExceptionWinForms应用程序: Application.ThreadExceptionWeb应用程序:Global.asax的 Application_Error对于其他线程:辅助线程没有未处理的异常。使用SafeThread工作者线程:(计时器,线程池)根本没有安全网!请记住,这些事件不会处理异常,它们只会向应用程序报告它们-通常在为时不晚对它们做任何有用的事情时记录异常很好,但是监视应用程序更好;-)
打开App,查看更多内容
随时随地看视频慕课网APP