wpf - 如何处理用户控件中的意外异常

标签 wpf user-interface error-handling

假设一个 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/

相关文章:

objective-c - 在屏幕上的某处显示自定义 UI

django - Flup 中未处理的异常

wpf - 正确的 MVVM 设计模式 - ViewModel 和 DataContext

wpf - 如果打算隐藏,请使用 new 关键字 - ContextMenu XAML

animation - 如何在 JavaFX 中使用 CSS 制作动画?

c# - C# 解决方案可以有多种形式,但在编译时选择一种作为主要形式吗?

jquery - ASP.NET文本框内的JQuery验证错误?

asp.net - 集中式 ASP.NET 错误处理 : <customErrors> vs. Application_Error。可以同时使用吗?

c# - Wpf控件显示html代码

c# - WPF ListView SelectedItem 为空