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から:

「このイベントは、キャッチされていない例外の通知を提供します。これにより、アプリケーションは、システムの既定のハンドラーが例外をユーザーに報告してアプリケーションを終了する前に、例外に関する情報をログに記録できます。」

したがって、ハンドラーで何をしていても醜いポップアップが表示され、その後アプリケーションは終了します。デフォルトのエラー ポップアップを表示したくない場合は、ハンドラーを追加しApplication.Current.DispatcherUnhandledExceptionてエラーをログに記録し、Application.Current.Shutdown()自分自身を呼び出す必要があります。

于 2013-05-22T13:37:39.530 に答える