是否可以尝试/捕获整个C#程序?
AC#程序由以下方式调用:
Application.Run (new formClass ());
我想对整个事情进行尝试/捕获以捕获任何未捕获的exception。 当我把它放在这个Run方法时,不会捕获exception; 当程序在未捕获的exception之后终止时,控制仅返回此处。
我在哪里可以使用try / catch来覆盖整个程序? 谢谢!
捕获Windows Form的未处理exception,将AppDomain.UnhandledException
和Application.ThreadException
事件挂钩。
有趣的是: 托管应用程序中的意外错误
基本上,在使用默认CLR托管过程时,您无法捕获所有exception。 期。 这是因为AppDomain.UnhandledException
事件只是一个通知,您无法处理exception(这意味着您无法阻止应用程序在处理通知后被终止)。
但是,您可以使用其Application.ThreadException
处理程序(并通过UnhandledExceptionMode
控制行为 )来捕获并处理WinForms应用程序的UI线程中的所有exception。 其他抛出exception的线程将不会被此处理程序捕获。
一般来说,尝试处理所有exception并不是一个好主意。 但是,您可以使用AppDomain.UnhandledException
来记录错误和/或执行重要的清理任务(例如关闭基于文件的数据库或其他任何内容)。
上述就是C#学习教程:是否可以尝试/捕获整个C#程序?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1010067.html