是否有一种简单的方法来捕获所有UI事件回调中的所有异常,而不是在每个回调中调用try/catch?在UI事件回调中尝试/捕获块
这里是我试过到目前为止:
UI回调:
private void btnOk_Click(object sender, EventArgs e)
{
int x=0;
int i=1/x;//Exception happens here.
}
切入点:
在DebugView中,我可以看到DivideByZero例外。但是,MyForm已关闭且无法操作。我希望能报告例外并继续运作。是否有一种简单的方法可以让MyForm将异常发送到Debug.Print(),而无需直接将try/catch添加到btnOk_Click(以及所有其他UI回调)?
SetUnhandledExceptionMode不允许发生这种情况。它改变了未处理异常的行为,但不允许程序继续执行。 (它只是改变线程例外策略)。 –
哦,你说得对。我打算参考: Application.ThreadException 在那里捕获的任何东西都将允许程序继续执行。我会更新我的链接。 – Bob
它不会继续往前走 - 它只是让特定的线程从拆除应用程序。如果这是你的UI线程,但是,你仍然会关闭。 –