図 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 でか、または例外が起こった点の後の次の機械命令のいずれかで
このプロシージャーにおける制御が再開されます。