![]() |
1
4
Application.Run()中的消息循环代码周围有一个try/catch块,用于捕获事件处理程序引发的未经处理的异常。catch子句引发Application.ThreadException事件。该事件有一个默认处理程序,它显示一个ThreadExceptionDialog。为用户提供忽略错误或中止程序的选项。 使用调试器运行程序时,此catch子句被禁用。这允许您轻松调试异常。禁用它后,CLR将在Main()方法中找到catch子句。要禁用此行为,请将这行代码添加到Main()方法的顶部:
它现在的行为与调试器中的相同。这里更好的捕鼠器是为AppDomain.CurrentDomain.UnhandledException实现一个事件处理程序。它捕获所有未处理的异常,包括在工作线程中引发的异常。并且允许您调试未处理的异常,调试器在throw语句处停止。 |