如何在usercontrol中处理意外的异常

时间:2013-12-02 15:44:31

标签: wpf user-interface error-handling

假设一个wpf App基本上由几个tabitems组成,每个tabitems都有一个丰富的usercontrol。所有用户控件都在同一个UI线程中,意外和unhandeld错误将导致App崩溃。

有没有办法避免这种情况并将崩溃限制在发生的特定用户控件上?用户可以继续使用其他标签。

一种方法是在不同的线程上使用单独的窗口而不是tabitem。

1 个答案:

答案 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的确切位置。试一试,看看它是否对你有帮助。