c# – 处理Application.ThreadException和在TryCatch中包装Application.Run之间的区别

c# – 处理Application.ThreadException和在TryCatch中包装Application.Run之间的区别,第1张

概述是否有任何理由更喜欢在 Windows窗体应用程序中实现全局异常处理程序的这些方法之一? 第一种方法 static void Main(string[] args) { try { System.Windows.Forms.Application.Run(mainform); } catch (Exception ex) { 是否有任何理由更喜欢在 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),所有这些都是对您的应用程序非常不利的消息.

总结

以上是内存溢出为你收集整理的c# – 处理Application.ThreadException和在Try / Catch中包装Application.Run之间区别全部内容,希望文章能够帮你解决c# – 处理Application.ThreadException和在Try / Catch中包装Application.Run之间的区别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1217475.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存