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