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
ファイル名句は TRANSACTION ファイルに対しても有効です。
End of IBM Extension
- INPUT
- すべてのファイルに対して有効です。
このオプションを指定すると、INPUT モードでオープンされ、エラーが生じたすべてのファイルに対してプロシージャーが実行されます。
- OUTPUT
- すべてのファイルに対して有効です。
このオプションを指定すると、OUTPUT モードでオープンされ、エラーが生じたすべてのファイルに対してプロシージャーが実行されます。
- I-O
- すべての直接アクセス・ファイルに対して有効です。
このオプションを指定すると、I-O モードでオープンされ、エラーが生じたすべてのファイルに対してプロシージャーが実行されます。
IBM Extension
I-O 句は TRANSACTION ファイルに対しても有効です。
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 プロシージャーを実行させるステートメントを組み込むことはできません。