ファイル終了条件の検出 (AT END 句)

ファイル終了条件は、エラーである場合とそうでない場合があります。 多くの設計では、ファイル終了は意図的に順次読み取られ、AT END 条件が予期されています。

しかし、ファイル終了条件がエラーを反映する場合もあります。 READ ステートメントの AT END 句をコーディングすることにより、プログラム設計に基づいて、それぞれの場合の処理を行います。

AT END 句をコーディングすると、ファイル終了条件が生じた時点で、この句で識別される命令ステートメントが実行されます。 AT END 句をコーディングしない場合には、関連する USE AFTER EXCEPTION/ERROR 宣言が実行されます。

コーディングした NOT AT END 句が実行されるのは、READ ステートメントが正常に完了した場合だけです。 ファイル終了以外の条件で READ 操作が失敗した場合、AT END 句と NOT AT END 句は両方とも実行されません。 その代わり、関連する USE AFTER EXCEPTION/ERROR 宣言型プロシージャーが実行された後で READ ステートメントの最後に制御が渡されます。

AT END 句も USE AFTER EXCEPTION/ERROR 宣言型プロシージャーもコーディングしておらず、かつファイルに STATUS KEY 文節をコーディングしている場合は、ファイル終了条件を検出した入出力ステートメントの後にある次の順次命令に制御が渡されます。 この時点で状況キーを参照し、該当するアクションを行ってエラーを処理するようにコーディングする必要があります。