我试图在我的应用程序中捕获所有未处理的异常,以便有条件地处理那些可以在不终止应用程序的情况下发生的异常,但我无法解决一个非常基本的问题:它不会停止异常。未处理的异常在代码的某处被抛出,它来到这里,显示消息框,然后应用程序要么显示相同的异常未处理(如果处于调试模式),要么只是崩溃(如果运行时没有调试)。这意味着即使调用了处理程序,异常仍处于未处理状态。
App() {
AppDomain.CurrentDomain.UnhandledException += (s, a) => {
var ex = (Exception)a.ExceptionObject;
MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
};
}
这是来自一个新的空白测试项目,其中除了这段代码和一个在单击时引发异常的按钮之外什么都没有。