我的项目中有这个标准代码:
try {
myForm = new MyForm();
Application.Run(myForm);
} catch (Exception e) {
// handle all uncaught exceptions
}
但是,当我的程序中某处出现未处理的异常时,它仍会显示“默认”异常处理程序,并且我的catch
永远不会被命中。我想将某些致命错误处理为已知的致命错误(例如,连接丢失)。
答案 0 :(得分:1)
一种可能性是AppDomain.UnhandledException
。在这里查看更多详细信息:
此外,这是一篇较旧的 - 但仍然很优秀的文章:
答案 1 :(得分:0)
你可以试试这样的事情
myForm = new MyForm();
Application.Run(myForm);
Application.ThreadException +=
new ThreadExceptionEventHandler(Application_ThreadException);
然后像这样使用此事件
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
try
{
// Your code
}
catch (Exception ex)
{
// your code
}
}