この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Application.DispatcherUnhandledException イベント

 

公開日: 2016年11月

例外は、アプリケーションによってスローされたが、処理されない場合に発生します。

名前空間:   System.Windows
アセンブリ:  PresentationFramework (PresentationFramework.dll 内)

public event DispatcherUnhandledExceptionEventHandler DispatcherUnhandledException

既定では、 Windows Presentation Foundation (WPF) 未処理の例外をキャッチ、(元に通知できます例外)] ダイアログ ボックスで、例外のユーザーに通知、およびアプリケーションを自動的にシャット ダウンします。

ただし、処理、アプリケーションを一元的な場所からカスタムのハンドルされない例外の処理を実行する場合は、 DispatcherUnhandledExceptionです。

DispatcherUnhandledException によって発生した、 Application はメイン UI スレッドで実行されているコードで処理されない例外はごとにします。

例外が処理されない場合のいずれかのバック グラウンド ユーザー インターフェイス (UI) スレッド (に独自のスレッド Dispatcher) またはバック グラウンド ワーカー スレッド (ことがなく、スレッド、 Dispatcher)、主に、例外は転送されません UI スレッドです。 その結果、 DispatcherUnhandledException は発生しません。 このような場合は、次を行うコードを記述する必要があります。

  1. バック グラウンド スレッドで例外を処理します。

  2. これらの例外に、メインのディスパッチ UI スレッドです。

  3. メインの再スローして UI を許可するための処理なくスレッド DispatcherUnhandledException が発生します。

詳細については、次を参照してください。、 スレッド モデル の概要です。

DispatcherUnhandledException 渡されるイベント ハンドラー、 DispatcherUnhandledExceptionEventArgs 、例外に関するコンテキスト情報を含む引数を含みます。

この情報を使用すると、例外が回復可能かどうかどうかを確認します。 回復可能な例外があります、 FileNotFoundException, など、回復不能な例外が生じる可能性があります、 StackOverflowException, などです。

ハンドルされない例外を処理すると DispatcherUnhandledException, 、したくないと WPF 処理を継続するには、設定する必要があります、 Handled プロパティを trueします。

その他のイベントとは異なりを Application 発生すると、 DispatcherUnhandledException しませんが、対応する保護されていない (OnDispatcherUnhandledException) の仮想実装します。 その結果、クラスから派生した Application を持つイベント ハンドラーは常に登録する必要があります DispatcherUnhandledException 未処理の例外を処理します。

次の例では、処理することにより、未処理の例外を処理する方法、 DispatcherUnhandledException イベントです。

using System.Windows; // Application
using System.Windows.Threading; // DispatcherUnhandledExceptionEventArgs

namespace SDKSample
{
    public partial class App : Application
    {
        void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
        {
            // Process unhandled exception
            // Prevent default unhandled exception processing
            e.Handled = true;
        }
    }
}

.NET Framework
3.0 以降で使用可能
トップに戻る
表示: