currentException

システム変数 SysLib.currentException は、実行単位で最近スローされた例外を識別します。

EGL は、実行時の問題について特定の性質を示すために、一連のシステム例外を備えています。 これらの例外は、それぞれが 1 つの辞書になっており、そこから情報を取り出すことができますが、取り出しには、常にシステム変数 SysLib.currentException (これも辞書) を使用します。この変数により、実行単位内でスローされた最新の例外にアクセスできます。

どの例外にも、code という 1 つのフィールドがあり、これは、その例外を識別するストリングです。 このフィールドを次のようにロジック内でテストすることにより、現行の例外を判別できます。
  if (userRequest = "A")
    try
      add record1;
    onException
      case (SysLib.currentException.code)
        when (FileIOException)
          myErrorHandler(12);
        otherwise
          myErrorHandler(15);
      end
    end
  end

この場合、FileIOException は「com.ibm.egl.FileIOException」というストリング値に相当する定数です。 EGL 例外定数は常に、「com.ibm.egl」で始まるストリング内の最後の修飾子と等価です。

例外フィールドへのアクセスは、onException ブロック内でのみ行うことを強くお勧めします。 例外が発生しなかったときに、コードが SysLib.currentException にアクセスすると、実行単位は終了します。

次の例は、例外 SQLException 内の sqlcode フィールドにアクセスします。
  if (userRequest = "A")
    try
      add record01;
    onException
      case (SysLib.currentException.code)
        when ("com.ibm.egl.SQLException")
          if (SysLib.currentException.sqlcode == -270)
            myErrorHandler(16);
          else
            myErrorHandler(20);
          end
        otherwise
          myErrorHandler(15);
      end
    end
  end

関連概念
辞書

関連リファレンス
例外処理
EGL ライブラリー SysLib
EGL システム例外

フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.