编写高质量代码改善C#程序的157个建议——建议65:总是处理未捕获的异常
2015-08-17 21:58
781 查看
建议65:总是处理未捕获的异常
处理为捕获的异常是每个应用程序具备的基本功能,C#在APPDomain提供了UnhandledException事件来接收未捕获到的异常的通知。常见的应用如下:
未捕获异常通常就是运行时期的Bug,我们可以在AppDomain.CurrentDomain.UnhandledException的注册事件方法CurrentDomain_UnhandledException中,将未捕获的异常信息记录在日志中。UnhandledException提供的机制并不能阻止应用程序终止,也就是说,执行CurrentDomain_UnhandledException方法后,应用程序就会终止。
在WinForm程序中使用ThreadException事件来处理UI线程异常,使用UnhandledException事件来处理非UI线程异常。ThreadException可以阻止应用程序终止。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
处理为捕获的异常是每个应用程序具备的基本功能,C#在APPDomain提供了UnhandledException事件来接收未捕获到的异常的通知。常见的应用如下:
static void Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); } static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Exception error = (Exception)e.ExceptionObject; Console.WriteLine("MyHandler caught : " + error.Message); }
未捕获异常通常就是运行时期的Bug,我们可以在AppDomain.CurrentDomain.UnhandledException的注册事件方法CurrentDomain_UnhandledException中,将未捕获的异常信息记录在日志中。UnhandledException提供的机制并不能阻止应用程序终止,也就是说,执行CurrentDomain_UnhandledException方法后,应用程序就会终止。
在WinForm程序中使用ThreadException事件来处理UI线程异常,使用UnhandledException事件来处理非UI线程异常。ThreadException可以阻止应用程序终止。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
相关文章推荐
- 编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内
- 编写高质量代码改善C#程序的157个建议——建议63:避免“吃掉”异常
- 正确 C# 未来的期望
- 第一个小练习,从基础重新来
- C#接口详解
- c# ComboBox简单用法
- 编写高质量代码改善C#程序的157个建议——建议62:避免嵌套异常
- 编写高质量代码改善C#程序的157个建议——建议61:避免在finally内撰写无效代码
- 如何在C#中的委托实现
- [转]C# Invoke的使用方法
- [转载]C#控制台应用程序里调用自己写的函数的方法
- C#查看各种变量的指针地址
- 编写高质量代码改善C#程序的157个建议——建议60:重新引发异常时使用Inner Exception
- C#方法的封装
- 转:C# DataGridView控件清空数据出错解决方法
- 编写高质量代码改善C#程序的157个建议——建议59:不要在不恰当的场合下引发异常
- C#读写文件
- c# 获取路径的几种方法
- 可视化对比十多种排序算法(C#版)
- C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标(转)