ファイル例外/エラー
ファイル例外/エラーの例としては、未定義のレコード・タイプ、
トリガー・プログラムのエラー、クローズされているファイルに対する入出力操作、
装置エラー、および配列/テーブルのロード順序エラーなどがあります。 これらは、以下
のいずれかの方法によって処理することができます。
- 命令コード拡張 'E' を指定することができます。この拡張を、命令の開始前に指定すれば、%ERROR および %STATUS 組み込み関数 がゼロを戻すように設定することができます。 例外/エラーが操作中に発生した 場合、%ERROR 命令が '1' を戻した後、%STATUS がファイル状況を戻します。 任意指定の ファイル情報データ構造は、例外/エラー情報によって更新されます。 %ERROR および %STATUS をテストすることによって、 とるべき処置を決定することができます。
- 命令コードの演算仕様書の 73 から 74 桁目に標識を指定することができます。 この標識は、指定された命令の処理中に例外/エラーが起こった場合にオンに設定されます。 任意指定のファイル情報データ構造は、 例外/エラー情報によって更新されます。標識をテストすることによって、とるべき処置 を判別するこ とができます。
- ON-ERROR グループを使用して、MONITOR ブロックの中で処理されるステートメントのエラーを処理することができます。ステートメントの処理の際にエラーが発生すると、適切な ON-ERROR グループに制御が渡ります。
- 例外が起こった時に制御を受け取ることになるユーザー定義の ILE 例外処理 プログラムを作成することができます。 詳細については、Rational Development Studio for i ILE RPG プログラマーの手引きを参照してください。
- サイクル・モジュールのグローバル・ファイルに対して、ファイル例外/エラー処理サブルーチンを指定することができます。 このサブルーチンは、ファイル仕様書上で、制御を渡す先のサブルーチンの名前を 指定して、INFSR キーワードによって定義します。 ファイル例外/エラーに関する情報は、ファイル仕様書で INFDS キーワードによって指定されるファイル情報データ構造を介して、使用可能にすることができます。また、プログラムまたは ファイル状況に関して設定された最新の値を戻す %STATUS 組み込み関数も 使用することができます。ファイルが指定されている場合、%STATUS は、指定されたファイルに 関する INFDS *STATUS フィールドに入っている値を戻します。
- 標識、'E' 拡張、MONITOR ブロック、またはファイル例外/エラー処理サブルーチンがない場合には、ファイル例外/エラーは RPG IV のデフォルトのエラー処理プログラムによって処理されます。