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 型です。

互換性に関する考慮事項

表 1. 互換性に関する考慮事項
プラットフォーム 問題
COBOL 生成 変数 sysLib.currentException はサポートされていません。
JavaScript 生成 変数 sysLib.currentException はサポートされていません。

フィードバック