我想知道最好的方法是“如果所有其他方法都失败了,那就赶上它”。我的意思是,您正在处理应用程序中尽可能多的异常,但是仍然有一定的错误,因此我需要拥有一些可以捕获所有未处理的异常的东西,以便我可以收集信息并将其存储在数据库中或提交它们到网络服务。AppDomain.CurrentDomain.UnhandledException事件是否捕获所有内容?即使应用程序是多线程的?旁注:Windows Vista公开了本机API函数,该函数允许任何应用程序在崩溃后恢复自身...现在想不起来的名称...,但我宁愿不使用它,因为我们的许多用户仍在使用Windows XP。
3 回答
忽然笑
TA贡献1806条经验 获得超5个赞
在主线程上,您具有以下选项:
控制台或服务应用程序: AppDomain.CurrentDomain.UnhandledException
WinForms应用程序: Application.ThreadException
Web应用程序:Global.asax的 Application_Error
对于其他线程:
辅助线程没有未处理的异常。使用SafeThread
工作者线程:(计时器,线程池)根本没有安全网!
请记住,这些事件不会处理异常,它们只会向应用程序报告它们-通常在为时不晚对它们做任何有用的事情时
记录异常很好,但是监视应用程序更好;-)
- 3 回答
- 0 关注
- 520 浏览
添加回答
举报
0/150
提交
取消