ON SIZE ERROR 句

ADD、SUBTRACT、MULTIPLY、DIVIDE、および COMPUTE ステートメントの ON SIZE ERROR 句は次の処理を行います。

ILE COBOL は、前述の異常事態処理ルーチンを優先順位 85 で登録します。 ユーザー異常事態処理ルーチンは、優先順位 165 で登録され、 前述の異常事態処理ルーチンが例外を処理しない場合に限り制御を受け取ります。

ON SIZE ERROR 句がコーディングされていない場合、2 進数および 10 進数オーバーフロー・メッセージは出されず、 浮動小数点数メッセージは無視されます。 CEEHDLR API を使用してユーザー異常事態処理ルーチンを登録していない場合、その他のすべての算術 MCH メッセージは、 多くの場合、機能チェック異常事態処理ルーチンで処理されます。

サイズ・エラー条件は、次の状況で発生します。

算術演算における一般的なエラーとして、サイズ・エラー (MCH1210) と 10 進数データ・エラー (MCH1202) があります。 ほとんどの MCH エラーは、ILE COBOL で直接には検出されず、オペレーティング・システムで検出され、システム・メッセージが表示されます。 ILE COBOL はそのようなメッセージをモニターして、SIZE ERROR 命令ステートメントを実行するか、 それとも実行時メッセージ (LNR7200) を出してプログラムを終了するかを決定する内部ビットを設定します。

LNR7200 メッセージを送らないようにするためには、CEEHDLR API を使用して MCH メッセージを処理するユーザー異常事態処理ルーチンを登録するか、 または COBOL バインド可能 API を使用して、LNR72xx 照会メッセージを処理する ILE COBOL エラー・ハンドラーをコーディングすることができます。

ILE COBOL は、算術演算中にゼロ除算の結果として起こったエラーは検出します。 ILE COBOL がこの種のエラーを検出すると、SIZE ERROR 命令ステートメントが実行されます。

一般に、システム・メッセージ MCH1210 が出されるのは、1 つの 2 進数または 10 進数の数字フィールドを別のフィールドに移動したときに、その受け取り側が小さすぎる場合です。 このエラーは ILE COBOL でモニターされ、やはり SIZE ERROR 命令ステートメントが出されます。

LNR7200 は、通常は ILE COBOL プログラム中でモニターされていない重大エラーが起こると出される実行時メッセージです。

モニターされていない重大エラーが起きた時に出されるメッセージの典型的なものとして、システム・メッセージ MCH1202 があります。 この種のエラーが発生すると、ILE COBOL 実行時メッセージ LNR7200 (または、ILE COBOL プログラムによって呼び出されたプログラム中でエラーが発生した場合は LNR7204) が出されます。 モニターされていない重大エラーの例としては、そのほかにシステム・メッセージ MCH3601 および MCH0601 もあります。