c# – 处理Application.ThreadException和在Try / Catch中包装Ap
发布时间:2020-12-16 01:49:52 所属栏目:百科 来源:网络整理
导读:是否有任何理由更喜欢在 Windows窗体应用程序中实现全局异常处理程序的这些方法之一? 第一种方法 static void Main(string[] args) { try { System.Windows.Forms.Application.Run(mainform); } catch (Exception ex) { // Log error and display error mes
是否有任何理由更喜欢在
Windows窗体应用程序中实现全局异常处理程序的这些方法之一?
第一种方法 static void Main(string[] args) { try { System.Windows.Forms.Application.Run(mainform); } catch (Exception ex) { // Log error and display error message } } 第二种方法 static void Main(string[] args) { System.Windows.Forms.Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException); System.Windows.Forms.Application.Run(mainform); } static void Application_ThreadException(object sender,ThreadExceptionEventArgs e) { // Log error and display error message } 处理ThreadException事件会给你一些try / catch没有的东西吗? 解决方法
我对这种行为的理解是,添加一个
ThreadException处理程序将导致表单中未处理的异常被此处理程序捕获和处理,这将允许应用程序继续运行.
在try / catch设计中,表单中的第一个未处理的异常将导致应用程序停止.您将捕获异常,但应用程序将结束. 请注意,在某些情况下还会引发一个AppDomain.UnhandledException事件(主窗口表单线程以外的线程中未处理的异常并且没有捕获ThreadException),所有这些都是对您的应用程序非常不利的消息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |