次の方法で共有


IDebugExceptionEvent2

現在実行中のプログラムで例外がスローされると、デバッグ エンジン (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 により、プログラムの実行が再開され、オペレーティング システムまたはランタイムによって例外が処理されます。

関連項目