すべての数字項目の数字データの有効性をチェックします。
省略値: | On |
タイプ: | 一般 |
データが無効な場合は、ランタイムシステムエラー 163 (「数値フィールド内の不正な文字」) が生成されます。 このスイッチをオフに設定すると、データのチェックは行われません。
このチェックは、CHECKNUM コンパイラ指令を指定して作成した生成コードと、中間コードに対してのみ実行されます。
ランタイムシステムと生成コードは、さまざまな種類の数値オペレーションを最適化します。 数値オペランドの数値データが無効な場合には、これらの数値オペレーションの実行結果は無効です。 デフォルトでは、無効な数値データで数値オペレーションが実行されると、ランタイムシステムはランタイムシステムエラー 163 を生成します。
無効なデータは、中間コードと元のコードでは正しく処理されません。 プログラムの開発中は、数値フィールドのチェックを有効にすることをお奨めします。
ランタイムエラー 163 が発生した場合は、無効なデータがないようにコードを修正することをお奨めします。 +F スイッチをオンに設定してからランタイムシステムエラー 163 が検出されるまでプログラムを実行することで、無効な数値データの場所を特定できます。
プログラムコードの修正が難しい場合には、以下に示すコンパイラ指令を使用すると動作を変更できる場合があります。
working-storage section. 01 item-a pic 9.
procedure division. If item-a = 0. Display "zero" else display "nonzero" end-if.
項目 item-a には初期値が無いので、デフォルトではスペースクリアされています。 このプログラムを Fスイッチがオンの状態で実行すると、数字項目のチェックがなされ、 実行時エラー 163 が発生します。