是否可以尝试/捕获整个C#程序?
-
05-07-2019 - |
题
C#程序由以下人员调用:
Application.Run (new formClass ());
我想在整个过程中尝试使用try / catch来捕获任何未捕获的异常。当我把它放在这个Run方法时,不会捕获异常;当程序在未捕获的异常之后终止时,控制仅返回此处。
在哪里可以使用try / catch来覆盖整个程序?谢谢!
解决方案
捕获Windows Form的未处理异常连接
AppDomain.UnhandledException
和 Application.ThreadException
事件。
感兴趣:托管应用程序中出现意外错误
其他提示
基本上,在使用默认CLR托管过程时,您无法捕获所有异常。期。这是因为 AppDomain.UnhandledException
事件只是一个通知,您无法处理异常(这意味着您无法阻止应用程序在处理通知后被终止)。
但是,您可以使用其 Application.ThreadException
handler(和通过。 unhandledexceptionmode.aspx“rel =”nofollow noreferrer“> UnhandledExceptionMode
)。引发异常的其他线程将不会被此处理程序捕获。
一般来说,尝试处理所有异常并不是一个好主意。但是,您可以使用
AppDomain.UnhandledException
,用于记录错误和/或执行重要的清理任务(例如,关闭基于文件的数据库或其他任何内容)。
不隶属于 StackOverflow