入出力操作中のエラー処理

エラー処理は、入出力ステートメントの処理中に、 他の方法では通知されない可能性のある重大エラーを捕らえるのに役立ちます。 入出力操作においては、重要なエラー処理のための句と文節がいくつかあります。 これらは以下のとおりです。

入出力操作中に、システムはエラーを検出してメッセージを送ります。続いて ILE COBOL がこのメッセージをモニターします。 さらに、ILE COBOL はシステムがサポートしない入出力操作においても、いくつかのエラーを検出します。 入出力操作中にエラーを検出する方法には関係なく、 結果は常にゼロ以外の内部ファイル状況、実行時メッセージ、またはその両方になります。

エラー処理の重要な特徴は、入出力ステートメントの AT END/INVALID KEY 句、USE AFTER EXCEPTION/ERROR プロシージャー、または SELECT ステートメントの FILE STATUS 文節がファイルにない場合に、 入出力ステートメントの処理中にエラーが発生すると、実行時メッセージを出されることです。

入出力エラーについては、重大でない入出力エラーが起こった後に、 プログラムの実行を続行するかしないかを選択できることに注意してください。 ILE COBOL は訂正アクションを実行しません。 エラー処理コードをプログラム設計に挿入することによりプログラムの続行を選択する場合は、 適切なエラー・リカバリー手順もコーディングしなければなりません。

入出力ステートメントと特に関係のあるエラー処理の句や文節に加えて、 ユーザー定義の ILE 異常事態処理ルーチンおよび ILE COBOL エラー処理 API を使用して入出力エラーを処理することもできます。

ILE COBOL は、入出力ステートメントごとに異常事態処理ルーチンを登録して、さまざまな入出力関連条件をキャッチします。 これらの異常事態処理ルーチンは優先順位 185 で登録されているので、ユーザー定義の異常事態処理ルーチンが最初に制御を受け取ります。

前述のように、ファイルに対して該当する AT END、INVALID KEY、USE プロシージャー、または FILE STATUS 文節がない場合にエラー発生すると、ILE COBOL の実行時メッセージが出されます。 メッセージ LNR7057 はエスケープ・メッセージです。 このメッセージは、ユーザー定義の異常事態処理ルーチンで処理できます。 このメッセージを処理できる異常事態処理ルーチンがない場合は、メッセージ LNR7057 が機能チェックとして再び送られます。

ILE COBOL には機能チェック異常事態処理ルーチンがあり、ILE COBOL エラー処理 API が定義されていない場合には、それによって最終的に照会メッセージ LNR7207 が出されます。