c# - 未处理的异常后终止应用程序

标签 c# wpf exception

我在 WPF 应用程序中遇到问题。我写了这段代码:

public partial class App : Application
{
    public App()
    {
        AppDomain.CurrentDomain.UnhandledException += new 
            UnhandledExceptionEventHandler(MyHandler);
    }

    void MyHandler(object sender, UnhandledExceptionEventArgs e)
    {
        Exception exception = e.ExceptionObject as Exception;
        MessageBox.Show(exception.Message, "ERROR",
                        MessageBoxButton.OK, MessageBoxImage.Error);
    }

    ...
}

但是当发生未处理的异常时,屏幕上会出现很多 MessageBox(异常发生在定时例程中),关闭其中一个后,Windows 会发出未处理异常的信号。

如何避免出现多个 MessageBox?
如何避免未处理异常的消息?
异常后如何终止应用程序?
正如您很容易想到的那样,我想用我的 MessageBox 显示一条消息(但只有一条消息),然后在没有任何其他消息的情况下终止应用程序。

previous question与此论点相关,Kyle Rozendo告诉我使用 DispatcherUnhandledException。有必要还是我写的代码就够了?

谢谢。

最佳答案

您还可以使用 Application.Exit()System.Environment.Exit(exitCode) 在显示错误对话框后立即关闭您的应用程序。

关于c# - 未处理的异常后终止应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2266291/

相关文章:

java - 向 TableViewer 添加数据时出现异常

c# - X509Chain 在 RemoteCertificateValidationCallback 期间未构建完整链

wpf - 如何将空字符串作为 ConverterPararmeter 传递?

c# - WPF SelectionChanged 为相同的值

wpf - 如何在 Windows 8 商店应用程序中访问 Parent 的 DataContext

c# - C# 中的方法链和异常

javascript - 使用 WinJS 在 Windows Metro 中进行优雅的异常处理

c# - EF6 连接需要很长时间才能失败

c# - 语句与 REFERENCE 约束冲突

c# - 重写 Object.Equals 和实现 IEquatable<> 时无法访问代码?