码迷,mamicode.com
首页 > Windows程序 > 详细

【转】编写高质量代码改善C#程序的157个建议——建议65:总是处理未捕获的异常

时间:2017-12-06 16:14:27      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:current   编写   thread   lin   win   程序   err   console   rgs   

 

建议65:总是处理未捕获的异常

处理为捕获的异常是每个应用程序具备的基本功能,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个建议——建议65:总是处理未捕获的异常

标签:current   编写   thread   lin   win   程序   err   console   rgs   

原文地址:http://www.cnblogs.com/farmer-y/p/7992823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!