为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

胡子哥哥 2019-10-24 11:15:40
我想知道最好的方法是“如果所有其他方法都失败了,那就赶上它”。我的意思是,您正在处理应用程序中尽可能多的异常,但是仍然有一定的错误,因此我需要拥有一些可以捕获所有未处理的异常的东西,以便我可以收集信息并将其存储在数据库中或提交它们到网络服务。AppDomain.CurrentDomain.UnhandledException事件是否捕获所有内容?即使应用程序是多线程的?旁注:Windows Vista公开了本机API函数,该函数允许任何应用程序在崩溃后恢复自身...现在想不起来的名称...,但我宁愿不使用它,因为我们的许多用户仍在使用Windows XP。
查看完整描述

3 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

在主线程上,您具有以下选项:


控制台或服务应用程序: AppDomain.CurrentDomain.UnhandledException

WinForms应用程序: Application.ThreadException

Web应用程序:Global.asax的 Application_Error

对于其他线程:


辅助线程没有未处理的异常。使用SafeThread

工作者线程:(计时器,线程池)根本没有安全网!

请记住,这些事件不会处理异常,它们只会向应用程序报告它们-通常在为时不晚对它们做任何有用的事情时


记录异常很好,但是监视应用程序更好;-)


查看完整回答
反对 回复 2019-10-24
  • 3 回答
  • 0 关注
  • 520 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信