RPG IV 例外/エラー処理ルーチン

図 2 は、RPG IV 例外/エラー処理ルーチンの特定のス テップを示しています。 以下の説明の項目番号は、図の中の 番号を示しています。
 1 
ファイル情報データ構造またはプロシージャー状況データ構造が指定された 場合には、それが状況情報によってセットアップされます。
 2 
例外/エラーが 73 から 74 桁目に標識の指定がある命令コードで起こった場合 には、標識がオンに設定され、演算の次の順序の命令に制御が戻されます。
 3 
該当する例外/エラー処理サブルーチン (INFSR または *PSSR) がプロシージ ャーに存在する場合には、プロシージャーはステップ 13 に分岐し、そうでない 場合には、プロシージャーはステップ 4 から続行されます。
 4 
状況コードが 1121 から 1126 の場合には (ファイル状況コードを参照)、 演算の現在の命令に制御が戻されます。 そうでない場合には、プロシージャーはステップ 5 から続行されます。
  5 
例外が機能チェックである場合には、プロシージャーはステップ 6 から続行 されます。そうでない場合には、ステップ 15 に分岐します。
 6 
照会メッセージが要求元端末に出されます。 対話式ジョブの場合には、メッ セージは要求元に送られます。 バッチ・ジョブの場合には、 メッセージは QSYSOPR に送られます。 QSYSOPR が中断モードでなければ、デフォルトの応答が出さ れます。
 7 
ユーザーの応答がプロシージャーを取り消すためのものである場合には、 プロシージャーはステップ 8 から続行されます。 そうでない場合には、プロシージャーは 続行されます。
 8 
ユーザーの応答がダンプをとってプロシージャーを取り消すためのものであ る場合には、プロシージャーはステップ 9 から続行されます。 そうでない場合 には、プロシージャーはステップ 10 に分岐します。
 9 
ダンプが出力されます。
 10 
すべてのグローバル・ファイルがクローズされ、データ域がアンロックされます。
 11 
プロシージャーは再び呼び出せるように設定されます。
 12 
戻りコードが設定され、機能チェックがパーコレートされます。
 13 
制御が例外/エラー処理サブルーチン (INFSR または *PSSR) に渡されます。
 14 
例外/エラー処理サブルーチンの ENDSR 命令の演算項目 2 に戻り点が指定され ている場合には、プロシージャーは指定された戻り点に進みます。 戻り点が指定 されていない場合には、プロシージャーはステップ 4 に進みます。 ENDSR 命令の 演算項目 2 にフィールド名が指定されていて、その内容が RPG IV 定義の戻り 点 (*GETIN または *DETC など) の 1 つではない場合には、プロシージャーはス テップ 6 に進みます。 エラーは示されず、元のエラーは演算項目 2 の指定がブラ ンクであるかのように処理されます。
 15 
呼び出しで例外が処理されない場合には、 機能チェックへプロモートされ、プロシージャーはステップ 5 に分岐します。 そうでない場合には、処理プログラムによってとられた処置に応じて、 ステップ 10 でか、または例外が起こった点の後の次の機械命令のいずれかで このプロシージャーにおける制御が再開されます。