ON SIZE ERROR 句が使用されていない文で、プログラムが 0 で割る処理を実行しようとした場合のプログラムの動作を制御します。
構文:
>>-.---.-.-------CHECKDIV-"dialect"-.-----><
+-/-+ +.----.-CHECKDIV-----------+
+-NO-+
パラメーター:
- dialect
- ACOS、ANSI、ISO2002、COBOL370、ENTCOBOL、MVS、OS390、OSVS、VSC2 のうちのいずれか1つ。
プロパティ:
デフォルト: |
CHECKDIV"ANSI" |
段階: |
構文チェック |
$SET: |
初期 |
説明:
この指令は、ON SIZE ERROR 句が使用されている算術文には影響しません。
CHECKDIV、CHECKDIV"ANSI"、または CHECKDIV"ISO2002" を指定すると、プログラムで 0 で割る処理が実行された場合、プログラムは続行されますが、予期しない結果になります。NOCHECKDIV を設定した場合の動作は予期できません。
CHECKDIV"COBOL370"、CHECKDIV"ENTCOBOL"、CHECKDIV"MVS"、CHECKDIV"OS390"、CHECKDIV"OSVS"、または CHECKDIV"VSC2" を指定した場合は、すべて同じ結果になります。つまり、0 で割ろうとすると、ランタイム エラー 048 (ゼロで割ろうとしている) が発生します。-O ランタイム システム スイッチを使用して、このエラーを発生させないことができます。
CHECKDIV"ACOS" を指定すると、商と剰余の両方に被除数の値が割り当てられます。NUMPROC"ACOS" 指令を使用すると、ACOS メインフレームとの互換性がさらに向上します。
NOCHECKDIVを設定すると、除算についての最適なコードが生成されます。