假设一个 wpf 应用程序本质上由几个选项卡项组成,每个选项卡项都有丰富的用户控件。所有用户控件都位于同一 UI 线程中,意外且未处理的错误将使应用程序崩溃。
有没有办法避免这种情况并将崩溃限制在发生崩溃的特定用户控件上?用户可以继续其他选项卡。
一种方法是在不同线程上使用单独的窗口而不是 tabitem。
最佳答案
您可以处理AppDomain.UnhandledException
event ,尽管通常在这个阶段,某些事情已经发生了严重错误,并且通常会处理此事件,以便记录错误详细信息和/或正常关闭程序:
AppDomain.CurrentDomain.UnhandledException += MainWindow_UnhandledException;
...
public void MainWindow_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
// An unhandled Exception has been thrown
}
它将捕获您未手动处理的所有异常
。然而,除了 StackTrace 之外,通常只有很少的信息来确定抛出异常的确切位置。尝试一下,看看是否对您有帮助。
关于wpf - 如何处理用户控件中的意外异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20332136/