0

我正在注册我的 WPF 应用程序的未处理异常。

UnhandledExceptionHandler 调用后,应用程序会自动关闭吗?或者我需要调用 ShutdownProcess();

这够了吗 ?

    static void Main(string[] args)
    {
        //Register to unhandled exception for this application
        AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionHandler;


    static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs args)
    {
        try
        {
            Exception ex = (Exception)args.ExceptionObject;
            _logger.ErrorFormat("Process caught unhandled exception, Exception = {0}", ex);
            ShutdownProcess();
        }
        catch
        {
            // swallow silently... nothing we can do.
        }
    }
4

1 回答 1

1

来自MSDN

“此事件提供未捕获异常的通知。它允许应用程序在系统默认处理程序向用户报告异常并终止应用程序之前记录有关异常的信息。”

因此,无论您在 Handler 中做什么,都会显示丑陋的弹出窗口,然后应用程序将被终止。如果您不希望显示默认错误弹出窗口,您应该添加一个处理程序来Application.Current.DispatcherUnhandledException记录您的错误并调用Application.Current.Shutdown()自己。

于 2013-05-22T13:37:39.530 回答