エラー標識が使えるコードは、'E' 命令コード拡張も 使えます。 CALLP 命令の場合、エラー標識が使えなくても 'E' 拡張が 使えます。 このことは根本的には同じ、2 つの ILE RPG エラー処理方式を提供することになります。エラー標識または 'E' 拡張の いずれか (両方ではない) を使って、例外を処理することが できます。
RPG エラー標識処理プログラムを使用可能にするには、表 33 にリストされた 命令コード (CALLP を除く) の 73 〜 74 桁目にエラー標識を 指定します。 その命令で例外が起こった場合には標識がオンに設定され、 適切なデータ構造 (PSDS または INFDS) が更新され、制御が次の順番の命令に 戻ります。 ここで標識をテストして、取る処置を決定することができます。
'E' 命令コード拡張処理プログラムを使用可能にするには、表 33 の命令コードの いずれかに 'E' (または 'e') を指定します。 'E' 拡張をコーディングすると、 例外に対する組み込み関数、%ERROR および %STATUS によって戻される値に影響 します。 その操作が始まる前に、これらの組み込み関数によって戻される値はゼロに 設定されます。 その操作で例外が起こった場合には、 これらの組み込み関数の戻り値はそれによって更新され、適切な データ構造 (PSDS または INFDS) が更新され、制御が次の順番の命令に 戻ります。 次に、これらの組み込み関数を使って戻り値をテストし、 取るべき処置を決定することができます。
ある命令コードにエラー標識か 'E' 拡張を指定した時には、EXSR 命令によって ファイル・エラー処理サブルーチン (INFSR) またはプログラム・エラー処理サブルーチン (*PSSR) を 明示的に呼び出すことができます。 EXSR 命令によって INFSR または *PSSR が明示的に 呼び出され、ENDSR 命令の 演算項目 2 がブランクであるか、あるいは指定されたフィールドの値が ブランクの場合には、制御は EXSR 命令の後の次の順番の命令に戻されます。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.