Application.DispatcherUnhandledException イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
アプリケーションによってスローされた例外が処理されないときに発生します。
public:
event System::Windows::Threading::DispatcherUnhandledExceptionEventHandler ^ DispatcherUnhandledException;
public event System.Windows.Threading.DispatcherUnhandledExceptionEventHandler DispatcherUnhandledException;
member this.DispatcherUnhandledException : System.Windows.Threading.DispatcherUnhandledExceptionEventHandler
Public Custom Event DispatcherUnhandledException As DispatcherUnhandledExceptionEventHandler
イベントの種類
例
次の例は、 イベントを処理して未処理の例外を処理する方法を DispatcherUnhandledException 示しています。
using System.Windows;
using System.Windows.Threading;
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;
}
}
}
Imports System.Windows
Imports System.Windows.Threading
Namespace SDKSample
Partial Public Class App
Inherits Application
Private Sub App_DispatcherUnhandledException(ByVal sender As Object, ByVal e As DispatcherUnhandledExceptionEventArgs)
' Process unhandled exception
' Prevent default unhandled exception processing
e.Handled = True
End Sub
End Class
End Namespace
注釈
既定では、Windows Presentation Foundationは未処理の例外をキャッチし、(例外を報告できる) ダイアログ ボックスから例外をユーザーに通知し、アプリケーションを自動的にシャットダウンします。
ただし、アプリケーションが一元化された場所からカスタムのハンドルされない例外処理を実行する必要がある場合は、 を処理 DispatcherUnhandledExceptionする必要があります。
DispatcherUnhandledExceptionは、メイン UI スレッドで実行されているコードによって処理されない例外ごとに によってApplication発生します。
バックグラウンド UI スレッド (独自Dispatcherのスレッド) またはバックグラウンド ワーカー スレッド (を含まないDispatcherスレッド) で例外が処理されない場合、例外はメイン UI スレッドに転送されません。 その結果、 DispatcherUnhandledException は発生しません。 このような状況では、次の操作を行うコードを記述する必要があります。
バックグラウンド スレッドの例外を処理します。
これらの例外をメイン UI スレッドにディスパッチします。
それらを処理せずに、メイン UI スレッドで再スローして、発生を許可DispatcherUnhandledExceptionします。
詳細については、「 スレッド モデル の概要」を参照してください。
イベント ハンドラーには DispatcherUnhandledException 、例外に DispatcherUnhandledExceptionEventArgs 関するコンテキスト情報を含む次の引数が渡されます。
例外 (Exception)。
Dispatcherそれが発生した (Dispatcher) の元の 。
この情報を使用して、例外が回復可能かどうかを判断できます。 回復可能な例外は である FileNotFoundException場合があります。たとえば、回復不可能な例外は StackOverflowExceptionである場合があります。
から DispatcherUnhandledException未処理の例外を処理し、WPF で処理を続行したくない場合は、 プロパティを Handled に設定する true
必要があります。
が発生する Application 他のイベントとは異なり、 DispatcherUnhandledException には、一致する保護された仮想実装 (OnDispatcherUnhandledException) がありません。 したがって、 から Application 派生するクラスは、未処理の例外を処理するために、常に イベント ハンドラーを に DispatcherUnhandledException 登録する必要があります。
適用対象
.NET