ユーザー作成のエラー処理ルーチン

ON EXCEPTION 句、ON SIZE ERROR 句、および他の ILE COBOL 言語のセマンティクスを使用すると、 プログラム実行時に発生する可能性のあるほとんどのエラー状態を処理できます。 しかし、マシン・チェックなどの異常なエラー状態が発生すると、ILE COBOL は照会メッセージを出し、 それにより重大エラーが発生した後に行う必要のあるアクションを判別できます。

しかし、ILE および ILE COBOL には、ユーザー作成の ILE 異常事態処理ルーチンを使用するメカニズムが用意されています。 このメカニズムにより、照会メッセージを出す前に異常なエラー状態を処理できます。 ILE 異常事態処理を使用すると、独自のエラー処理ルーチンを作成してエラー状態を処理することにより、 プログラムの実行を続行することができます。

ユーザー作成の異常事態処理ルーチンの優先順位は 165 です。 この優先順位を設定されたユーザー作成異常事態処理ルーチンは、通知された条件を、 入出力異常事態処理ルーチンまたは ILE デバッガー異常事態処理ルーチンより前に参照できます。

ILE がユーザー作成エラー処理ルーチンに制御を渡すようにするには、まず入り口点を識別して ILE に登録しなければなりません。 例外ハンドラーを登録するには、プロシージャー・ポインターをユーザー作成異常事態処理ルーチン登録 (CEEHDLR) のバインド可能 API に渡します。 ILE COBOL プログラムを例外ハンドラーとして使用する場合、登録できるのは最外部の ILE COBOL プログラムだけです。 ILE COBOL では、非再帰的プログラムの場合、 再帰が不可能なので、ILE COBOL プログラムを例外ハンドラーとして登録する場合は、 このプログラムを、必ず活動化グループ中で 1 回だけしか呼び出せないようにするか、 再帰的プログラムにする必要があります。

例外ハンドラーの詳細については、「ILE 概念」を参照してください。 プロシージャー・ポインター・データ項目を使用すると、プロシージャー入り口点の入り口アドレスを ILE サービスに渡せます。 プロシージャー・ポインター・データ項目の詳細については プロシージャー・ポインターによる入り口点アドレスの受け渡しを参照してください。 ユーザー作成異常事態処理ルーチンはいくつでも登録できます。 複数のユーザー作成異常事態処理ルーチンを登録すると、後入れ先出し法 (LIFO) の順序で制御がハンドラーに渡されます。

ユーザー作成異常事態処理ルーチン登録抹消 (CEEHDLU) API を使用して、ユーザー作成異常事態処理ルーチンを登録取り消しすることもできます。