EGL では、以下のコア例外レコードが定義されています。
追加例外レコードは、さまざまなデータ・アクセス・テクノロジーに対して定義されています。
使用する可能性がある例外レコードについては、トピックの最後にある『関連参照』を参照してください。
また、コードによって AnyException をチェックし、下の例外をキャッチすることができます。次の例のようになります。
try
get myCustomer;
onException(ex AnyException)
myErrorHandler(ex);
end
以下のフィールドは、それに続くすべての例外を対象に自動的に事前定義されます。
- messageID
- 例外の EGL エラー・コードを含む STRING です。
- message
- 問題の簡単な説明を含む STRING です。
次の例外は、コア EGL 機能のパーツです。
- FileIOException
- 索引付き、相対、またはシリアル・ファイルの読み取りまたは書き込みの試行中に発生したエラーです。レコードには、以下の暗黙の追加フィールドが含まれています。
- filename
- エラー発生時にアクセスされていたファイルの名前です。
- IndexOutOfBoundsException
- 索引に現行コンテキストの範囲外の値がある状況でスローされます。
これは、基本的に配列アクセス、サブストリング式や何らかのシステム関数で発生します。
レコードには、以下の暗黙の追加フィールドが含まれています。
- indexValue
- 範囲外の値です。
- InvocationException
- call ステートメントによるリモート・プログラムの呼び出しができなかった場合にスローされます。エラー・コードによって、EGL がプログラムを呼び出せない理由が説明されます。
レコードには、次の追加フィールドが含まれます。
- name
- 呼び出せないプログラムの名前。
- returnValue
- 呼び出された関数の戻りコードが格納されるか、またはその他の理由で InvocationException が発生した場合はゼロが格納されます。
- errno
- サービス・プログラムまたは共用ライブラリーによって設定される、C 標準ライブラリーの値へのアクセスを提供します。
この値は、returnValue がゼロ以外の場合にのみ設定されます。
- JavaObjectException
- プログラムが ExternalType パーツを介してアクセスする Java™ オブジェクトで、Java 例外がスローされる場合にスローされる EGL 例外。
ExternalType パーツ を参照してください。
- LobProcessingException
- BLOB 型または CLOB 型の変数の処理中に発生したエラーを識別します。
レコードには、次の追加フィールドが含まれます。
- itemName
- 変数名です。
- operation
- 処理できない EGL システム関数の名前です。
- resource
- 変数に付加されているファイルがある場合、そのファイルの名前です。
- NullValueException
- ヌル値を参照すると常にスローされます。
- RuntimeException
- プラットフォーム・エラーの発生時にスローされます。messageID フィールドには、プラットフォーム・エラー・コードが含まれています。message フィールドには、
関連するメッセージが示されている場合はそのメッセージが含まれています。
それ以外の場合は、messageID を使用して、
障害を起こしたプラットフォームや EGL 機能を判別し、特定の機能の文書中で該当する
メッセージを参照できます。
- ServiceBindingException
- デプロイメント記述子ファイルに誤ったバインディングが指定されるとスローされます。
- ServiceInvocationException
- EGL が要求されたサービスを呼び出せない場合にスローされます。ネイティブ・サービスの場合は、
戻りコードがゼロに等しくないと例外もスローされます。
レコードには、以下の追加フィールドが含まれています。
- source
- サービス呼び出しのタイプに応じて、EGL、NATIVE、または WEB。
- detail1
- source フィールドが WEB に設定されている場合は、
この値が SOAP の障害の FaultCode の値です。
source が EGL または NATIVE に設定されている場合、detail1 フィールドはブランクです。
- detail2
- source フィールドが WEB に設定されている場合は、
この値が SOAP の障害の SOAPActor の値です。
source が EGL または NATIVE に設定されている場合、detail2 フィールドはブランクです。
- detail3
- source フィールドが WEB に設定されている場合は、
この値が SOAP の障害の Diagnostic の値です。
source が EGL または NATIVE に設定されている場合、detail3 フィールドはブランクです。
- TypeCastException
- この例外では、as 演算子がサポートされています。
この例外は、キャスト中の値が as 演算子で指定された型ではない場合にスローされます。
レコードには、次の追加フィールドが含まれます。
- castToName
- as 演算子で指定されている型です。
- actualTypeName
- 値キャストの型名です。
- XMLProcessingException
- この例外は、XML ストリングとレコードとの間での変換を行うときに発生する可能性があります。
レコードには以下の追加フィールドが組み込まれます。
- detail
- 基礎となっているテクノロジーからのエラー・メッセージ。例えば、SAX パーサー・エラー、DOM パーサー・エラー、または XPath 処理エラーなど。