首页 > 代码库 > 在.NET Windows Form Application中统一处理未处理的异常总结
在.NET Windows Form Application中统一处理未处理的异常总结
在Windows Form Application中,异常若最终得不到处理,则会触发AppDomain.CurrentDomain.UnhandledException事件进行以进行最终的异常记录(使用此事件无法避免应用程序的终结)。在此事件被触发之前,分以下情况可决定是否将异常继续传播。
主线程
使用Application.SetUnhandledExceptionMode(bool)方法预先设置处理模式:
- 若为UnhandledExceptionMode.ThrowException,则表示继续传播。
- 若为UnhandledExceptionMode.CatchException,则使用Application.ThreadException事件进行捕获处理,若在此事件中再抛出异常则会继续传播。
任务,包括用new Task()与TaskFactory创建的
可使用TaskScheduler.UnobservedTaskException事件进行捕获处理(注意此事件要在垃圾收集完毕后才会触发)设置Observed值:
- 若为False,则表示继续传播
- 若为True,则不会继续传播。
自定义线程,包括使用New Thread()与ThreadPool创建的
无
在.NET Windows Form Application中统一处理未处理的异常总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。