EXCEPTION/ERROR 宣言型プロシージャーの使用 (USE ステートメント)

ILE COBOL プログラムには、1 つまたは複数の USE AFTER EXCEPTION/ERROR 宣言型プロシージャーをコーディングできます。 入出力エラーが発生すると、このプログラムに制御が与えられます。 次のものを使用できます。

プログラムの PROCEDURE DIVISION の宣言セクションに、上記の各プロシージャーを入れます。 宣言作成の詳細については、「WebSphere Development Studio: ILE COBOL 解説書」を参照してください。

プロシージャーでは、訂正アクションの試行、操作の再試行、続行、またはプログラムの終了を選択できます。 エラーをさらに分析したい場合は、USE AFTER EXCEPTION/ERROR 宣言型プロシージャーと状況キーを組み合わせて使用できます。

GLOBAL ファイルの場合は、ILE COBOL プログラムごとに独自の USE AFTER EXCEPTION/ERROR 宣言型プロシージャーを使用できます。

USE AFTER EXCEPTION/ERROR 宣言自体を、GLOBAL として宣言できます。 入出力エラー発生時に複数の宣言部分が実行される場合は、特別な優先順位の規則に従います。 この規則が適用されると、条件にかなう最初の宣言だけが実行用に選択されます。 選択される宣言は、宣言の実行に関する規則に従っていなければなりません。 宣言選択においての優先順位は次のとおりです。

  1. プログラム中のファイル特有の宣言 (形式は USE AFTER ERROR ON ファイル名-1) のうち、 修飾条件となるステートメントを含むもの
  2. プログラム中のモード特有の宣言 (形式 USE AFTER ERROR ON INPUT のもの) のうち、 修飾条件となるステートメントを含むもの
  3. ファイル特有の宣言のうち、GLOBAL 句を指定していて、 かつ修飾条件を検査されたプログラムを直接含むプログラム中のもの
  4. モード特有の宣言のうち、GLOBAL 句が指定されていて、 かつ修飾条件を検査されたプログラムを直接含むプログラム中のもの
  5. プログラムがネストしている場合、 親に対して、規則 3 と 4 が再帰的に適用されます。

エラーが発生した後に制御をプログラムに戻したい場合は、USE AFTER EXCEPTION/ERROR 宣言型プロシージャーを作成してください。 このプロシージャーを作成しないなら、エラーが発生した後にジョブが取り消されたり異常終了したりすることがあります。

各 USE AFTER EXCEPTION/ERROR 宣言型プロシージャーは、同一の ILE COBOL プログラムの他の宣言型プロシージャーや宣言以外の部分の呼び出しとは別個の呼び出しとして実行されます。 したがって、CEEHDLR API を呼び出して宣言型プロシージャーから ILE 異常事態処理ルーチンを登録すると、 その ILE 異常事態処理ルーチンは USE AFTER EXCEPTION/ERROR 宣言型プロシージャーで例外が発生した場合に限り呼び出され、ILE COBOL プログラムの他の部分で例外が発生しても呼び出されません。