1

サードパーティのCOMオブジェクトの例外から自分のC++コード(Windows x86)を保護し、次のSEH擬似コードを使用してそれらの例外をログに記録しています。

__try {
    hr = m_ComObj->SomeFunc();
} __except ( LogExceptionInfo(GetExceptionCode(), GetExceptionInformation()) ) {
    hr = E_UNEXPECTED;
    m_ComObjCrashed = true;
}

このアプローチは、SEHコードが存在しない場合に処理される例外をキャッチする可能性がありますか?

以下のMSDNの記事では、デフォルトの未処理の例外フィルターが、ロードされたリソースのメモリにコードが書き込まれるケースをキャッチして修正すると述べています。SEHを使用すると、望ましいデフォルトのOSの動作が妨げられる他のケースはありますか?

Win32™構造化例外処理の深さに関するクラッシュコース

4

1 に答える 1

0

はい、それはかなり合理的です。

COM関数で処理されないすべての例外をキャッチします

デフォルトのOSの動作に干渉関連の問題は見られません

于 2012-04-11T04:01:16.340 に答える