currentException (EGL システム変数)
V6 の例外モードで実行している場合に、 システム変数 sysLib.currentException を使用して、その実行単位でスローされた例外に関する情報を収集します。
V6 例外モードについて詳しくは、V6 の例外互換性の使用を参照してください。
V6 の例外互換性を使用した状態でコードが onException ブロックに入ると、EGL が sysLib.currentException に、問題に関する情報を取り込みます。 レコードである V6 より後の例外と違って、sysLib.currentException は辞書であり、 そのキーは、スローされた例外のタイプによって変わります。
sysLib.currentException には、常に code という名前のキー (例外を識別するストリング) があります。
例外フィールドにアクセスできるのは、onException ブロック内のみです。 EGL が例外をスローしていないときにコードが sysLib.currentException にアクセスすると、実行単位が終了します。
例
次の例では、プログラムは、code フィールドをテストすることにより、現在の例外を特定しています。
if (userRequest == "A")
try
add record1;
onException
case (sysLib.currentException.code)
when ("com.ibm.egl.FileIOException")
myErrorHandler(12);
when ("com.ibm.egl.InvocationException")
myErrorHandler(13);
otherwise
myErrorHandler(15);
end
end
end
例外のタイプ
以下のリストは、sysLib.currentException を設定するエラーの種類およびそれぞれのエラーの後に変数に含まれる情報を示します。
特に明記されていない限り、値はすべて STRING 型です。
- FileIOException
- ファイル入出力エラーが発生すると、この変数には以下の情報が入ります。
- code
- "com.ibm.egl.FileIOException"
- description
- エラー・メッセージ。
- filename
- エラーが発生したファイルの名前。
- errorCode
- エラー・コード (SysVar.errorCode にあるコードなど)。
- InvocationException
- リモート call 文でエラーが発生すると、この変数には以下の情報が入ります。
- code
- "com.ibm.egl.InvocationException"
- description
- エラー・メッセージ。
- name
- EGL が呼び出そうとしたプログラムの名前。
- errorCode
- エラー・コード (SysVar.errorCode にあるコードなど)。
- LobProcessingException
- BLOB、CLOB、または lobLib 関数でエラーが発生すると、この変数には以下の情報が入ります。
- code
- "com.ibm.egl.LobProcessingException"
- description
- エラー・メッセージ。
- operation
- エラーをトリガーした操作。
- resource
- BLOB または CLOB からのデータが格納される領域 (ファイル名または「メモリー」など)。
- itemName
- BLOB または CLOB の名前。
- MQIOException
- メッセージ・キューの入出力エラーが発生すると、この変数には以下の情報が入ります。
- code
- "com.ibm.egl.MQIOException"
- description
- エラー・メッセージ。
- name
- エラーが発生した論理キューの名前。
- errorCode
- エラー・コード (SysVar.errorCode にあるコードなど)。
- mqConditionCode
- メッセージ・キューからのエラーのコード (例えば、VgVar.mqConditionCode にあるコード)。
- ServiceBindingException
- サービスのバインド中にエラーが発生すると、この変数には以下の情報が入ります。
- code
- "com.ibm.egl.ServiceBindingException"
- description
- エラー・メッセージ。
- ServiceInvocationException
- サービスの起動中にエラーが発生すると、この変数には以下の情報が入ります。
- code
- "com.ibm.egl.ServiceInvocationException"
- description
- エラー・メッセージ。
- source
- サービスの種類 (「EGL」または「WEB」)。
- detail1
- source フィールドが WEB に設定されている場合、detail1 は SOAP 障害の「FaultCode」の値です。
- detail2
- source フィールドが WEB に設定されている場合、detail2 は SOAP 障害の「SOAPActor」の値です。
- detail3
- source フィールドが WEB に設定されている場合、detail3 は SOAP 障害の「Diagnostic」の値です。
- SQLException
- SQL 入出力エラーが発生すると、この変数には以下の情報が入ります。
- code
- "com.ibm.egl.SQLException"
- description
- エラー・メッセージ。
- sqlca
- sqlLib.sqlData (EGL システム変数) を参照してください。この値は HEX 型です。
- sqlcode
- sqlLib.sqlData (EGL システム変数) を参照してください。この値は INT 型です。
- sqlerrd
- sqlLib.sqlData (EGL システム変数) を参照してください。この値は INT 型の配列です。
- sqlerrmc
- sqlLib.sqlData (EGL システム変数) を参照してください。この値は CHAR 型です。
- sqlwarn
- sqlLib.sqlData (EGL システム変数) を参照してください。この値は CHAR 型の配列です。
- sqlstate
- sqlLib.sqlData (EGL システム変数) を参照してください。この値は CHAR 型です。
互換性に関する考慮事項
| プラットフォーム | 問題 |
|---|---|
| COBOL 生成 | 変数 sysLib.currentException はサポートされていません。 |
| JavaScript 生成 | 変数 sysLib.currentException はサポートされていません。 |