我目前正在开发一个C#WinForm应用程序,我正在尝试创建一个自定义表单,以便在抛出未捕获的异常时使用。这种自定义表单的原因是能够在日志文件中记录每个抛出异常的详细信息,并为用户提供外观精美的GUI,其中包含更好,更易于理解的错误详细信息。 / p>
现在,我正在注册例外事件:
Application.ThreadException += new ThreadExceptionEventHandler(ExceptionHandler.OnThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ExceptionHandler.OnUnhandledException);
ExceptionHandler类将错误记录在日志文件中,然后显示我的自定义WinForm。我的问题是,这是显示我的自定义表单的唯一方法吗?我现在知道的一个问题是,我无法确定应用程序是否仍然可以继续,或者在表单关闭时它是否会关闭。
总的来说,我的问题是......是否有更好或更简单的方法来使用我的自定义异常表单?另外,有一种方法可以知道一旦关闭Exception表单,应用程序能够恢复吗?
答案 0 :(得分:3)
如果您不理解异常的原因,继续运行程序是不安全的。
这里将更详细地讨论这个主题:
http://blogs.msdn.com/b/codeanalysis/archive/2006/06/14/631923.aspx
答案 1 :(得分:2)
您应首先退出应用程序以查找您未预料到的任何错误。表单是一个很好的触摸,但要注意它可能无法正常工作,因为你不知道问题是什么 - 所以把它包装在try catch中。然后,当出现错误时,做一些分析,如果它是你可以恢复的东西,而不是捕获那个特定的异常并恢复。通常情况下,如果某些东西一直冒泡到AppDomain.CurrentDomain.UnhandledException,那么可能会将应用程序放在一个不好的位置而你想关闭它。