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
| プラットフォーム | 問題 |
|---|---|
| COBOL 生成 | 変数 sysLib.currentException はサポートされていません。 |
| JavaScript 生成 | 変数 sysLib.currentException はサポートされていません。 |