更新 : 2007 年 11 月
適切な catch ブロックに制御が渡されていることをプロファイラに通知します。
HRESULT ExceptionCatcherEnter(
[in] FunctionID functionId,
[in] ObjectID objectId);
パラメータ
functionId
[入力] catch ブロックを含む関数の ID。objectId
[入力] 処理されている例外の ID。
解説
ExceptionCatcherEnter メソッドが呼び出されるのは、キャッチ ポイントが Just-In-Time (JIT) コンパイラでコンパイルされたコード内にある場合のみです。アンマネージ コードまたは内部コードでキャッチされた例外は、この通知を呼び出しません。ExceptionThrown 通知の後、ガベージ コレクションがオブジェクトを移動した可能性があるため、objectId 値が再び渡されます。
スタックがガベージ コレクションを許可する状態ではない可能性があり、プリエンプティブなガベージ コレクションを有効にできないため、このメソッドの実装でプロファイラをブロックしないでください。プロファイラがここでブロックされ、ガベージ コレクションが試行されると、このコールバックから制御が戻るまでランタイムがブロックされます。
プロファイラのこのメソッドの実装をマネージ コードに呼び出したり、なんらかの方法でマネージ メモリ割り当てが発生したりしないようにしてください。
必要条件
プラットフォーム : 「.NET Framework システム要件」を参照
ヘッダー : CorProf.idl
ライブラリ : CorGuids.lib
.NET Framework のバージョン : 3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0