Visual C++ の概念: 機能の追加
例外処理 (SEH)
Windows 95、Windows 98、および Windows 2000 (かつての Windows NT) では、構造化例外処理を採用し、堅牢な例外処理をサポートしています。構造化例外処理では、オペレーティング システムとの協調がキーとなりますが、プログラミング言語からも直接サポートされています。
"例外" とは、不測の事象、あるいはプロセスの正常な進行を妨げる現象を言います。例外は、ハードウェアとソフトウェアの両方から検出できます。ハードウェア例外としては、ゼロによる除算や数値型のオーバーフローなどがあります。ソフトウェア例外には、検出して RaiseException 関数を呼び出すことによりシステムにシグナルを送るものと、Windows により検出される特殊ケースがあります。
構造化例外処理を採用することにより、コードの信頼性を高めることができます。たとえば、プログラムが予期せず終了した場合に、メモリ ブロックやファイルなどのリソースを正しく閉じることができるようになります。また、メモリ不足などの特定の問題についても、goto ステートメントや戻り値の入念なテストを必要としない簡潔な構造化コードで対処できます。
メモ C プログラミング言語での構造化例外処理については、「Structured Exception Handling」を参照してください。構造化例外処理は C++ でも使用できますが、C++ プログラムには C++ 例外処理機構を使ってください。特に考慮する必要がある事項については、「Using Structured Exception Handling with C++」を参照してください。