如何在未处理的异常上崩溃

本文关键字:异常 崩溃 未处理 | 更新日期: 2023-09-27 18:27:44

我在WPF项目中创建了一些自定义异常,我很确定当它们被抛出时,我没有捕捉到它们,但我的应用程序也没有崩溃。但是,异常会记录在输出窗口中。

我的自定义异常源自System.Exception,如果我的try{}catch{}语句捕获了我的自定义Exception或System.Exception,我已经检查了它们。他们都不这么做。我使用的是Visual Studio 2010,并且在32位计算机上运行,所以这似乎是一个不同的问题。

如何在未处理的异常上崩溃

您可以为AppDomain.UnhandledException事件添加一个处理程序:

AppDomain.CurrentDomain.UnhandledException += App_UnhandledException;
public void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
    Exception exception = (Exception)e.ExceptionObject;
    Error error = new Error(exception, mainViewModel.StateManager.CurrentUser);        
    mainViewModel.AddError(error); 
}

Error是一个自定义类,我用它来记录数据库中的错误。如果在这个方法中设置了一个断点,那么每当有任何未捕获的Exception对象被抛出时,执行就会跳到这里。