プログラム例外/エラー

プログラム例外/エラーの例としては、ゼロによる除算、負数の SQRT、無効な 配列指標、CALL でのエラー、呼び出されたプログラムからのエラー戻り、および ストリング命令での範囲外の開始位置または長さなどがあります。 これらは、以下 のいずれかの方法によって処理することができます。
  • 一部の命令コードに、命令コード拡張 'E' を指定することができま す。 この拡張を、命令の開始前に指定すれば、%ERROR および %STATUS 組み込み関数 がゼロを戻すように設定することができます。 例外/エラーが操作中に発生した 場合、その操作後、%ERROR 命令は '1' を戻し、%STATUS はプログラム状 況を戻します。 任意指定のプログラム状況データ構造は、例外/エラー情報によ って更新されます。 %ERROR および %STATUS をテストすることによって、 とるべき処置を決定することができます。
  • 一部の命令コードの演算仕様書の 73 から 74 桁目に標識を 指定することができます。 この標識は、指定された命令の処理中に例外/エラーが起こった場合にオンに設定されます。 任意指定のプログラム状況データ構造は、 例外/エラー情報によって更新されます。 標識をテストすることによって、とるべき処置 を判別するこ とができます。
  • ON-ERROR グループを使用して、MONITOR ブロックの中で処理されるステートメントのエラーを処理することができます。ステートメントの処理の際にエラーが発生すると、適切な ON-ERROR グループに制御が渡ります。
  • 例外が起こった時に制御を受け取ることになるユーザー定義の ILE 例外処理 プログラムを作成することができます。 詳細については、Rational Development Studio for i ILE RPG プログラマーの手引きを参照してください。
  • プログラム例外/エラー処理サブルーチンを指定 することができます。 BEGSR 命令の演算項目 1 に *PSSR を記入して、この サブルーチンを指定してください。 プログラム例外/エラーに関する情報は、定義仕様書 でデータ構造ステートメント の 23 桁目に S を指定したプログラム状況データ構造を通じて使用することがで きます。また、プログラムまたは ファイル状況に関して設定された最新の値を戻す %STATUS 組み込み関数も 使用することができます。
  • 標識、'E' 拡張、MONITOR ブロック、またはプログラム例外/エラー処理サブルーチンがない場合には、プログラム例外/エラーは RPG IV のデフォルトのエラー処理プログラムによって処理されます。