現在実行中のプログラムで例外がスローされると、デバッグ エンジン (DE) からこのインターフェイスがセッション デバッグ マネージャー (SDM) に送信されます。
構文
IDebugExceptionEvent2 : IUnknown
実装側の注意
DE には、デバッグ中のプログラムで例外が発生したことを報告するために、このインターフェイスが実装されています。 IDebugEvent2 インターフェイスを、このインターフェイスと同じオブジェクトに実装する必要があります。 IDebugEvent2
インターフェイスにアクセスするために SDM によって QueryInterface が使用されます。
呼び出し元に関する注意事項
DE により、例外を報告するために、このイベント オブジェクトが作成され、送信されます。 このイベントは、SDM がデバッグ対象のプログラムにアタッチされたときに提供される IDebugEventCallback2 コールバック関数を使用して送信されます。
Vtable 順序のメソッド
次の表に、IDebugExceptionEvent2
のメソッドを示します。
メソッド | 説明 |
---|---|
GetException | このイベントを発生させた例外に関する詳細情報を取得します。 |
GetExceptionDescription | このイベントを発生させた、スローされた例外に関する人間が判読できる形式の説明を取得します。 |
CanPassToDebuggee | 実行の再開時にデバッグ対象のプログラムにこの例外を渡すオプションがデバッグ エンジン (DE) によってサポートされているかどうかを調べます。 |
PassToDebuggee | 実行の再開時にデバッグされるプログラムに例外を渡すか、例外を破棄する必要があるかを指定します。 |
要件
ヘッダー: msdbg.h
名前空間: Microsoft.VisualStudio.Debugger.Interop
アセンブリ: Microsoft.VisualStudio.Debugger.Interop.dll
解説
イベントを送信する前に、DE により、この例外イベントが SetException に対する前の呼び出しによって初回または 2 回目の例外として指定されているかどうかが確認されます。 初回例外として指定されている場合、IDebugExceptionEvent2
イベントが SDM に送信されます。 そうでない場合、DE により、例外を処理する機会がアプリケーションに与えられます。 例外ハンドラーが用意されておらず、例外が 2 回目の例外として指定されている場合、IDebugExceptionEvent2
イベントが SDM に送信されます。 それ以外の場合、DE により、プログラムの実行が再開され、オペレーティング システムまたはランタイムによって例外が処理されます。