USE ステートメント - 形式 1 - EXCEPTION/ERROR
EXCEPTION と ERROR は同義であり、相互に交換して使用できます。
USE ステートメント - 形式 >>-USE--+--------+--AFTER--+----------+--+-EXCEPTION-+----------> '-GLOBAL-' '-STANDARD-' '-ERROR-----' .---------. V | >--PROCEDURE--+----+--+---ファイル名-1-+-+-------------------------->< '-ON-' +-INPUT-------+ +-OUTPUT------+ +-I-O---------+ '-EXTEND------'
- ファイル名-1
- すべてのファイルに対して有効です。
このオプションを指定すると、指定したファイルに対してだけプロシージャーが実行されます。
ファイル名としてソート・ファイルまたはマージ・ファイルを参照することはできません。
1 つのファイルについては、1 つの EXCEPTION/ERROR プロシージャーしか指定できません。
したがって、ファイル名の指定によって、
複数の EXCEPTION/ERROR プロシージャーの実行要求が同時に起こってはなりません。
ファイル名を指定した USE AFTER EXCEPTION/ERROR 宣言ステートメントは、
ファイルのオープン・モードを指定した宣言ステートメントよりも優先されます。
IBM Extension
IBM Extension ファイル名句は TRANSACTION ファイルに対しても有効です。 End of IBM Extension
End of IBM Extension - INPUT
- すべてのファイルに対して有効です。 このオプションを指定すると、INPUT モードでオープンされ、エラーが生じたすべてのファイルに対してプロシージャーが実行されます。
- OUTPUT
- すべてのファイルに対して有効です。 このオプションを指定すると、OUTPUT モードでオープンされ、エラーが生じたすべてのファイルに対してプロシージャーが実行されます。
- I-O
- すべての直接アクセス・ファイルに対して有効です。
このオプションを指定すると、I-O モードでオープンされ、エラーが生じたすべてのファイルに対してプロシージャーが実行されます。IBM Extension
IBM Extension I-O 句は TRANSACTION ファイルに対しても有効です。 End of IBM Extension
End of IBM Extension - EXTEND
- このオプションを指定すると、EXTEND モードでオープンされ、エラーが生じたすべてのファイルに対してプロシージャーが実行されます。
EXCEPTION/ERROR プロシージャーが実行されるのは、次のいずれかのときです。
- システム定義の入出力エラー・ルーチンの完了後。
- INVALID KEY または AT END 句が入出力ステートメントの中で指定されていない場合に INVALID KEY または AT END 条件が検出されたとき。
- 状況キー 1 が 9 に設定されるような IBM 定義の条件が検出されたとき。 (状況キーを参照。)
READ、WRITE、REWRITE、START、ACQUIRE、DROP、OPEN、または CLOSE ステートメントの実行中に入出力エラーが発生した場合には、EXCEPTION/ERROR プロシージャーが活動化されます。 どの条件がエラーであるかを判別するには、共通の処理機能を参照してください。
EXCEPTION/ERROR 宣言プロシージャーの実行後は、エラーの原因となった入出力ステートメントの直後のステートメントに制御が戻されます。
宣言プロシージャーの中には、非宣言プロシージャーに対する参照があってはなりません。 プログラムの非宣言部分には、EXCEPTION/ERROR 宣言プロシージャーの中で指定されているプロシージャー名に対する参照があってはなりません。 ただし、例外として、PERFORM ステートメントでは、EXCEPTION/ERROR プロシージャーまたはそれに関連付けられているプロシージャーを参照できます。
EXCEPTION/ERROR 宣言プロシージャーの中には、以前に呼び出され、 呼び出し側のルーチンへまだ制御を戻していない USE プロシージャーを実行させるステートメントを組み込むことはできません。
