假设一个wpf App基本上由几个tabitems组成,每个tabitems都有一个丰富的usercontrol。所有用户控件都在同一个UI线程中,意外和unhandeld错误将导致App崩溃。
有没有办法避免这种情况并将崩溃限制在发生的特定用户控件上?用户可以继续使用其他标签。
一种方法是在不同的线程上使用单独的窗口而不是tabitem。
答案 0 :(得分:1)
你可以处理AppDomain.UnhandledException
event,虽然通常在这个阶段,出现了严重错误,并且通常会处理此事件以便记录错误详细信息和/或优雅地关闭程序:
AppDomain.CurrentDomain.UnhandledException += MainWindow_UnhandledException;
...
public void MainWindow_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
// An unhandled Exception has been thrown
}
它将捕获您未手动处理的所有Exception
个。但是,除了StackTrace
之外,通常只有极少的信息,而不是Exception
的确切位置。试一试,看看它是否对你有帮助。