サイクル・メイン・プロシージャー内の例外処理プログラム

例外がサイクル・メイン・プロシージャーで起こると ILE RPG は次のことを行います。
  1. 演算仕様書にエラー標識が指定されていて、例外がその命令で予期される ものである場合:
    1. 標識をオンに設定する。
    2. 例外を処理する。
    3. 制御は次の ILE RPG 命令で再開する。
  2. 'E' 命令コード拡張が演算仕様書上にあり、この例外がその命令で 予期される場合。
    1. 組み込み関数 %STATUS および %ERROR の戻り値が設定される。
      注: 'E' 拡張が指定されていなくても何か例外が発生すると、%STATUS は 設定されます。
    2. 例外を処理する。
    3. 制御は次の ILE RPG 命令で再開する。
  3. エラー標識も「E」拡張も存在せず、例外を生成するコードが MONITOR グループの MONITOR ブロック内にある場合、制御は MONITOR グループの ON-ERROR セクションに渡されます。
  4. エラー標識または 'E' 拡張がなく、例外を処理できる活動状態の MONITOR グループがなく、かつ
    • *PSSR エラー処理サブルーチンをコーディングしていて、例外が プログラム例外である場合、

      or

    • ファイルの INFSR エラー処理サブルーチンをコーディングしていて、例外が入出力例外である 場合、

    このときは、その例外が処理され、エラー処理サブルーチンの最初の ステートメントで制御が再開されます。

  5. エラー標識、'E' 拡張、またはエラー処理サブルーチンがコーディングされておらず、かつ例外を処理できる活動状態の MONITOR グループがない場合は、RPG のデフォルトのエラー処理プログラムが呼び出されます。
    • 例外が機能チェックでない 場合には、例外はパーコレートされ ます。
    • 例外が機能チェックである場合には、照会メッセージが 表示されます。 'G' または 'R' オプションを選択した場合には、機能チェックが処理され、プ ロシージャーの適切な時点 ('G' の場合には *GETIN あるいは 'R' の場合には 例外を受け取った同じ演算仕様書) で制御が再開されます。 そうでない場合には、機能チェックが パーコレートされ、プロシージャーが異常終了します。

RPG のデフォルト処理プログラムの詳細については、未処理例外を参照し てください。