例外宣言では、オペレーション実行中に例外が発生したときに例外情報を受け渡すための識別子(または例外構造体名)を定義します。オペレーション宣言のraises式を定義する場合は、この構造体名を指定します。
例外宣言の書式を以下に示します。
exception 例外識別子(例外構造体名) { データ型 メンバ名; // 構造体メンバを宣言 : };
例外識別子は、構造体メンバを宣言して構造体(例外構造体)として定義することもできます。構造体メンバを複数定義する場合は、各メンバをセミコロン(;)で区切ります。
メンバとして定義できるデータ型を以下に示します。
基本データ型
シーケンス型
構造体
共用体
固定小数点型
スコープ名
メソッドの実行結果として例外が返された場合、この例外識別子を参照できます。例外識別子にメンバ宣言がある場合は、そのメンバにアクセスできます。メンバ宣言がない場合は、その例外識別子だけを参照できます。
例
例外宣言の例を以下に示します。
exception FuncException { // 例外宣言 string reason; };
また、例外にはシステムでの異常終了を通知するシステム例外とサーバアプリケーションでの異常終了を通知するユーザ例外があります。ただし、コンポーネントトランザクションサービスでは、システム例外は使用できません。
例外の使用方法については、各言語の“サーバアプリケーションの例外処理”を参照してください。
注意
C++言語の場合、構造体メンバの宣言にメンバ名として「id」を使用できません。