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