RpcExcept マクロ (rpc.h)
RpcExcept ステートメントは、RPC アプリケーションの構造化例外処理を提供します。
Windows Vista 以降のバージョンの Windows: RpcExceptionFilter は、RpcExcept を使用したカスタム フィルターの代わりに、最も一般的な例外の構造化例外処理に推奨されます。 ただし、カスタム例外フィルターでは RpcExcept を引き続き使用する必要があります。
構文
void RpcExcept(
expr
);
パラメーター
expr
例外が発生したときに評価される式。 expression が 0 以外の値に評価された場合、例外ステートメントが実行されます。 expression が 0 の値に評価された場合、アンワインドは次の RpcTryExcept 関数または RpcTryFinally 関数に進みます。
戻り値
なし
解説
例外が発生しない場合、 式 ステートメントと 例外ステートメント はスキップされ、 RpcEndExcept ステートメントの後の ステートメントで実行が続行されます。
RpcTryExcept 句の後の複合ステートメントは、本文または保護されたセクションです。 RpcExcept 句の後の複合ステートメントが例外ハンドラーです。 ハンドラーは、保護されたセクションの本体の実行中に例外が発生した場合に行われる一連の操作を指定します。 次のように実行されます。
- 保護されたセクションが実行されます。
- 保護されたセクションの実行中に例外が発生しない場合は、 RpcEndExcept 句の後の ステートメントで実行が続行されます。
- 保護されたセクションの実行中、または保護されたセクションが呼び出すルーチンで例外が発生した場合、__except式が評価され、値によって例外の処理方法が決定されます。 次の 3 つの値があります。
- EXCEPTION_CONTINUE_EXECUTION (–1) 例外は無視されます。 例外が発生した位置から実行を継続します。
- EXCEPTION_CONTINUE_SEARCH (0) 例外が認識されません。 最初に try-except ステートメントを含むハンドラーを検索してから、次に優先順位が最も高いハンドラーについてスタックを検索し続けます。
- 例外が認識されました。 __except複合ステートメントを実行して例外ハンドラーに制御を転送し、__except ブロックの後に実行を続行します。
RpcExceptionCode は、 式 ステートメントと 例外ステートメント の両方で使用して、発生した例外を判断できます。
次の制限事項が適用されます。
- 保護されたステートメントへのジャンプ (goto を介して) は許可されません。
- 例外ステートメントへのジャンプ (goto 経由) は許可されません。
- 保護されたステートメントから (goto を介して) 返したりジャンプしたりすることはできません。
- 例外ステートメントから (goto を介して) 返したりジャンプしたりすることはできません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | rpc.h |