構造化例外の定義(C++)

提供: RAD Studio
移動先: 案内検索

Win32 の構造化例外(C++) への移動


Win32 例外を発生させてそれを同じプログラム内で処理することは、通常、あまり意味がありません。C++ 例外を使った方が、処理がうまくでき、移植性はずっと高く、構文も単純になります。ただし、Win32 例外には、同じ C++ コンパイラでコンパイルされたのでないコンポーネントで処理できるという利点があります。

まず、例外を定義します。例外とは、以下の形式の 32 ビット整数です(ビット 0 から始まります)。

ビット 意味
31-30 11 = エラー(通常)
00 = 成功
01 = 情報
10 = 警告
29 1 = ユーザー定義
28 予約済み
27-0 ユーザー定義

例外コードを定義する他に、例外にその他の情報(例外レコードからフィルタ/ハンドラがアクセス可能なもの)を追加するかどうかを決定する必要があります。例外コードで追加のパラメータをエンコードするための慣習的な方法はありません。

関連項目