ENDSR (サブルーチンの終了)
自由形式構文 | ENDSR {戻り点 } |
コード | 演算項目 1 | 演算項目 2 | 結果フィールド | 標識 | ||
---|---|---|---|---|---|---|
ENDSR | ラベル | 戻り点 |
ENDSR 命令は、RPG IV サブルーチンの終わりおよびサイクル・メイン・プログラムへの戻り点 (戻り点) を定義します。ENDSR は、サブルーチンの最後のステートメントでなければなりません。 従来型の構文では、サブルーチン内の GOTO 命令の分岐先として使用できるラベル・オペランドが指定できます。(自由形式構文では、ラベル は指定できません。) 制御レベル項目 (7 から 8 桁目) は SR またはブランクにすることができます。 条件付け標識は指定することができません。
ENDSR はサブルーチンを終了して、EXSR または CASxx 命令の直後のステー
トメントに分岐して戻ります。ただし、そのサブルーチンがプログラム例外/エラー処理サブルーチン (*PSSR) またはファイル例外/エラー処理サブルーチン
(INFSR) でない場合に限られます。 これらのサブルーチンの場合には、ENDSR
命令の戻り点 オペランドに、サブルーチンの処理後に制御を戻す場所を指定する項目を入れることができます。この項目
は、予約キーワードが入っているフィールド名、または予約キーワードである
リテラルまたは名前のついた定数を入れるフィールド名とすることができ
ます。 正しくない戻り点が指定された場合には、RPG IV
エラー処理プログラムに制御が渡されます。
注: サブプロシージャー (リニア・メイン・プロシージャーを含む) 内に現れる ENDSR 命令の場合には、戻り点 オペランドは指定できません。
戻り点の詳細については、ファイル例外/エラー処理サブルーチン (INFSR)を参照してください。
RPG IV サブルーチンのコーディングの例については、図 1 を参照してください。
詳細については、サブルーチン命令を参照してください。