try-catch
これは主に好奇心ですが、C++構造でSEH例外をキャッチするVisualStudioの歴史について読んでいます。/GXフラグが有効になっている古いバージョンのVisualStudioは、C++catch
ブロックで構造化されたWin32例外を「時々」キャッチするという主張に出くわし続けています。
/ GXフラグを使用してビルドした場合、Visual Studio 6.0はどのような状況で次のコードのcatchブロックに入りますか?
char * p = NULL;
try
{
*p = 'A';
}
catch(...)
{
printf("In catch\n");
}
Visual Studio 6 + SP6を使用した私自身の簡単なテストでは、プログラムの実行は手に負えない例外で停止し、「Incatch」が出力されることはありません。しかし、いくつかの記事(このcatch
ようなもの)は、ブロックに入ることが可能であると私に信じさせます。