COBOL2002 ユーザーズガイド


6.3.4 ファイル入出力文でのエラー情報出力機能

FILE STATUS句を指定した場合に,入出力文でエラーが発生したとき,FILE STATUS句で指定したデータ項目に入出力状態の値が設定され,実行時メッセージは出力されません。通常は入出力状態の値と実行中プログラムの処理内容によってエラー要因を特定できますが,入出力状態値90はエラー要因の数が多いため,その特定が困難です。この場合,エラー要因特定のため,FILE STATUS句の指定を取り消してプログラムを再実行し,実行時メッセージを出力する必要があります。

ファイル入出力文でエラー情報を出力する設定をしておくと,入出力文で入出力状態値90のエラーが発生した場合に,FILE STATUS句の指定があっても実行時メッセージを出力できます。これによって,実行時メッセージでエラー要因を特定できます。

ファイル入出力文でエラー情報を出力する場合は,実行時環境変数CBLIOMESSAGEにSTATUS90を指定します。

形式
CBLIOMESSAGE=STATUS90
規則
  • この環境変数にSTATUS90を指定した場合に,FILE STATUS句を指定したファイルの入出力文で入出力状態の値が90となるエラーが発生したとき,入出力状態の値を設定したあと,実行時メッセージを出力して処理を続行します。

  • 出力する実行時メッセージは,FILE STATUS句を指定しなかった場合に出力される実行時メッセージと同じメッセージです。ただし,メッセージレベルはI(お知らせ)となります

  • この環境変数の指定がない,またはSTATUS90以外の値を指定した場合は,この機能は無効になります。

  • この環境変数の指定によって実行時メッセージの出力以外,COBOLプログラムの動作が変わることはありません。

  • この環境変数の指定は,FILE STATUS句を指定したすべてのファイルの入出力文に有効となります。ただし,例外として,テストデバッガ実行時にファイルシミュレーション機能の対象となるファイルに対しては,この機能は無効になります。

  • FILE STATUS句の指定がないファイルの動作は,この環境変数を指定しても変わりません。

注※

プログラム実行後に実行時メッセージが出力されているときは,メッセージレベルがIであれば処理が続行されていると判定できます。

注意事項

COBOL入出力サービスルーチンおよびバイトストリーム入出力サービスルーチンは,この機能の対象となりません。