サイズ・エラー条件は、次の 4 つの場合に起こります。
01 WINDOWED-YEAR DATE FORMAT YY PICTURE 99
VALUE IS 50.
...
SUBTRACT 20 FROM WINDOWED-YEAR
ON SIZE ERROR imperative-statement
サイズ・エラーとなるのは、減算の結果 (ウィンドウ化日付フィールド) が 1930 という年の有効値を持つことになり、これが世紀ウィンドウの範囲外であるためです。ウィンドウ化日付フィールドが拡張日付フォーマットに変換されたかのように取り扱われる方法の詳細については、日付フィールドが関係する減算を参照してください。
日付フィールドを使用した場合のサイズ・エラーの発生の詳細については、日付フィールドに関連する算術演算結果の保管を参照してください。
| サイズ・エラー | SIZE ERROR 文節が指定されているときに取られる処置 | SIZE ERROR 文節が指定されていないときに取られる処置 |
|---|---|---|
| 0 が 0 乗された | SIZE ERROR 命令が実行されます。 | 値として 1 が戻され、メッセージが出されます。 |
| 0 が負数乗された | SIZE ERROR 命令が実行されます。 | プログラムは終了します。 |
| 負数が小数部乗された | SIZE ERROR 命令が実行されます。 | 基数の絶対値が使用され、メッセージが出されます。 |
サイズ・エラー条件は最終結果にだけ適用され、中間結果には適用されません。
結果 ID が使用法 BINARY、COMPUTATIONAL、COMPUTATIONAL-4、または COMPUTATIONAL-5 を使用して定義されている場合、結果の データ項目に入れることができる最大値は、TRUNC コンパイラー・オプションが 有効であるかどうかにかかわらず、項目の 10 進数 PICTURE 文字ストリングによって 暗黙指定された値です。
ROUNDED 句が指定されている場合は、サイズ・エラー検査の前に丸めが実行されます。
サイズ・エラーが起きると、プログラムの以降の処置は ON SIZE ERROR 句が指定されているかどうかによって異なります。
ON SIZE ERROR 句が指定されていない場合にサイズ・エラー条件が起きると、切り捨て規則が適用されてから、 その影響を受ける結果の ID の値が計算されます。
ON SIZE ERROR 句が指定されている場合にサイズ・エラー条件が起きると、 そのサイズ・エラーによって影響を受ける結果の ID の値は 変更されません。つまり、エラー結果が受け取り側の ID に入れられることはありません。算術演算の実行完了後に、ON SIZE ERROR 句で指定された命令ステートメントが実行され、制御は算術ステートメントの終わりに移され、 NOT ON SIZE ERROR 句はその指定があっても無視されます。
ADD CORRESPONDING および SUBTRACT CORRESPONDING については、個々の算術演算がサイズ・エラー条件を起こした場合、 ON SIZE ERROR 句の指定する命令ステートメントは、個々の加算や減算がすべて完了するまで実行されません。
NOT ON SIZE ERROR 句が指定されていた場合は、算術演算の実行後、サイズ・エラー条件は存在せず、NOT ON SIZE ERROR 句が実行されます。
ON SIZE ERROR 句と NOT ON SIZE ERROR 句が両方とも指定されている場合で、 実行される句の中のステートメントに明示的な制御の移動がなければ、 必要に応じてその句の実行後に算術ステートメントの終わりに暗黙の制御の移動が行われます。