ページの先頭行へ戻る
NetCOBOL V11.1 NetCOBOL Studio ユーザーズガイド
FUJITSU Software

A.1.6 CHECK翻訳オプション

CHECK機能を使用する(CHECK)か、しない(NOCHECK)かを指定します。

表示メッセージ数には、メッセージを表示させる回数を0~999999の整数で指定します。

項目

説明

CHECK機能

CHECK機能の使用の可否を指定します。

初期値では[CHECK機能を使用しない]が選択されます。

  

CHECK機能を使用する

CHECK機能を使用します。

CHECK機能を使用しない

CHECK機能を使用しません。

表示メッセージ数

表示されるメッセージ数を指定します。

検査項目

  

  

ALL

NUMERIC、BOUND、ICONF、LINKAGEおよびPRMをすべて検査します。

BOUND

添字・指標および部分参照の範囲外検査を行います。

ICONF

INVOKE文のパラメタと呼び出すメソッドの仮パラメタの適合検査を行います。

NUMERIC

データの例外を検査します。データの例外は数値項目がその属性に適さない値を含む場合、または、除算演算の除数が0(ゼロ)の場合に発生します。

PRM

翻訳時に、内部プログラムを呼び出すCALL文(CALL一意名を除く)のUSING指定またはRETURNING指定に記述されたデータ項目と内部プログラムのUSING指定またはRETURNING指定に記述されたデータ項目に対して以下の検査を行います。

  • USING指定のパラメタの個数の一致

  • RETURNING指定のパラメタの有無の一致

  • データ項目がオブジェクト参照以外の場合、データ項目の長さの一致。長さの検査は、翻訳時に長さが決定する場合だけ行う。

  • データ項目がオブジェクト参照の場合、USAGE OBJECT REFERENCE句に指定されたクラス名、FACTORY指定およびONLY指定の一致

実行時に、外部プログラムを呼び出すCALL文のUSING指定またはRETURNING指定に記述されたデータ項目と外部プログラムのUSING指定またはRETURNING指定に記述されたデータ項目に対して以下の検査を行います。

  • USING指定のパラメタの個数の一致、およびデータ項目の長さの一致。ただしUSING指定のパラメタの個数の不一致が4個以上の場合、誤りが検出されないことがあります。

  • RETURING指定のパラメタの長さの一致。RETURNING指定がない場合、暗黙にPROGRAM-STATUSが受け渡されるため、長さ4バイトのデータ項目が指定されたものとみなします。

なお、実行時に長さが決定する場合は、翻訳時に記述した長さの最大値を使って、検査を行います。

注意

  • ビルドモードがデバッグの場合、オプションの指定に関係なくCHECK(ALL)オプションが付加されます。

  • CHECK機能使用時には、n回目のメッセージが出力されるまで、プログラムの処理が続行されますが、領域破壊などによりプログラムが期待どおり動作しない場合があります。なお、nに0を指定した場合には、メッセージの表示回数に関係なく、プログラムの処理が続行されます。

  • CHECKを指定すると、上記の検査をするための処理が目的プログラム中に組み込まれるため、実行性能が低下します。デバッグ終了時には、NOCHECKを指定して再翻訳してください。

  • ON SIZE ERROR指定またはNOT ON SIZE ERROR指定の算術文では、ON SIZE ERRORの除数のゼロ検査が行われ、CHECK(NUMERIC)の除数のゼロ検査は行われません。

  • CHECK(NUMERIC)のデータ例外検査は、外部10進項目または内部10進項目が参照で使用される場合、および、英数字項目または集団項目から、外部10進項目または内部10進項目へ転記される場合に行われます。ただし次は、チェックの対象とはなりません。

    • 添字としてALLが指定されている表要素

    • SEARCH ALL文におけるキー項目(ただしキー項目に対する添字が1次元かつWHEN条件がひとつだけである場合は除く)

    • SORT/MERGE文におけるキー項目

    • SQL文中で使用されているホスト変数

    • CALL文、INVOKE文および行内呼び出しのBY REFERENCEパラメタ

    • 次の組み込み関数の引数

      • FUNCTION ADDR

      • FUNCTION LENG

      • FUNCTION LENGTH

    • 英数字項目または集団項目から、外部10進項目または内部10進項目のオブジェクトプロパティへの転記