ハンドラーの構文
このセクションでは、Microsoft C/C++ 最適化コンパイラで実装される構造化例外処理の構文と使用方法について説明します。 次のキーワードは、構造化例外処理メカニズムの一部としてコンパイラによって解釈されます。
キーワード | 説明 |
---|---|
__try | コードの保護された本文を開始します。 __except キーワードと共に使用して例外ハンドラーを構築するか、終了ハンドラーを構築するための __finally キーワードで使用されます。 |
__except | 関連付けられている __try ブロック内で例外が発生した場合にのみ実行されるコード ブロックを開始します。 |
__finally | 制御フローが関連付けられた __try ブロックから離れるたびに実行されるコード ブロックを開始します。 |
__leave | 異常終了とそのパフォーマンスの低下を __try ブロックの即時終了を許可します。 |
また、コンパイラは、GetExceptionCode 関数、GetExceptionInformation 関数、および AbnormalTermination 関数をキーワードとして解釈し、適切な例外処理構文の外部で使用すると、コンパイラ エラーが発生します。 次に、これらの関数について簡単に説明します。
関数 | 説明 |
---|---|
GetExceptionCode | 例外の種類を識別するコードを返します。 この関数は、フィルター式または例外ハンドラー ブロック内からのみ呼び出すことができます。 |
GetExceptionInformation | コンテキスト レコードと例外レコードへのポインターを含む EXCEPTION_POINTERS 構造体へのポインターを返します。 この関数は、例外ハンドラーのフィルター式内からのみ呼び出すことができます。 |
AbnormalTermination | 制御フローが、ブロック内の最後のステートメントを実行した後に、関連付けられた __try ブロックを順番に残したかどうかを示します。 この関数は、終了ハンドラーの __finally ブロック内からのみ呼び出すことができます。 |