Hitachi

COBOL2002 使用の手引 手引編


29.7.3 CBLCNVERRORINFO

CBLCNVERRORINFOサービスルーチンは,直前に実行された組み込み関数のCONVERT-CODE関数(Linuxで有効),DISPLAY-OF関数またはNATIONAL-OF関数のエラー情報を取得するものです。

形式
CALL 'CBLCNVERRORINFO' USING 引数1 引数2 引数3
引数
  • 引数1には,4バイトの符号なし2進項目を指定します。

  • 引数2には,4バイトの符号なし2進項目を指定します。

  • 引数3には,4バイトの符号付き2進項目を指定します。

戻り値

0:正常終了した場合

100:エラー情報がなかった場合

規則
  • このサービスルーチンでエラー情報を取得するためには,-FunctionECSup,CodeConvErrオプションを指定して,組み込み関数のCONVERT-CODE関数(Linuxで有効),DISPLAY-OF関数またはNATIONAL-OF関数が記述されたCOBOLソースをコンパイルする必要があります。

  • 引数1には,実行時エラーのメッセージ番号が格納されます。このサービスルーチンで取得できるのは,次の表に示す実行時メッセージに対応するエラー情報です。直前の組み込み関数のCONVERT-CODE関数(Linuxで有効),DISPLAY-OF関数またはNATIONAL-OF関数で,これらの実行時メッセージが出力されていない場合,サービスルーチンはエラーの戻り値100を返します。

    表29‒4 引数1に格納されるメッセージ番号

    実行時メッセージ

    引数1に格納される値

    KCCC2313R-W

    2313

    KCCC2314R-W

    2314

    KCCC2315R-W

    2315

    KCCC2316R-W

    2316

  • 引数2には,組み込み関数の引数に指定されたデータのうち,コード変換失敗の要因となったデータの位置情報が格納されます。DISPLAY-OF関数/NATIONAL-OF関数で引数1が2315以外の場合,引数2には0が格納されます。

  • DISPLAY-OF関数/NATIONAL-OF関数の場合,引数3には,コード変換失敗の要因となった日立コード変換の関数が返した戻り値が格納されます。戻り値の内容については,コード変換ライブラリのマニュアルのCodeConvString関数に関する説明を参照してください。

    CONVERT-CODE関数(Linuxで有効)の場合,引数3には,コード変換失敗の要因となったiconv関数が設定したerrnoの値が格納されます。errnoについては,システムのマニュアルのシステム関数に関する説明を参照してください。

  • 戻り値が0以外の場合,引数1,引数2,および引数3の内容は変更されません。

注意事項

取得できるエラー情報は,直前に実行された組み込み関数のCONVERT-CODE関数(Linuxで有効),DISPLAY-OF関数またはNATIONAL-OF関数のエラー情報です。コード変換が失敗する組み込み関数のCONVERT-CODE関数(Linuxで有効),DISPLAY-OF関数またはNATIONAL-OF関数を実行したあとから,このサービスルーチンを呼び出す前までの間に,正常終了する組み込み関数のCONVERT-CODE関数(Linuxで有効),DISPLAY-OF関数またはNATIONAL-OF関数を実行した場合,エラー情報は取得できません。

使用例
       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      SAMPLE1.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 ALNUM-DATA    PIC X(10).
       01 NATIONAL-DATA PIC N(10).
      *エラー情報取得用
       01 ERR-NUMBER  PIC 9(9)  USAGE COMP.
       01 ERR-OFFSET  PIC 9(9)  USAGE COMP.
       01 ERR-RETCODE PIC S9(9) USAGE COMP.
       01 戻り値      PIC S9(9) USAGE COMP.
       PROCEDURE DIVISION.
                :
           *>NATIONAL-OF関数で呼び出し
           MOVE FUNCTION NATIONAL-OF(ALNUM-DATA) TO NATIONAL-DATA.
           *>NATIONAL-OF関数呼び出し直後にサービスルーチン呼び出し
           CALL 'CBLCNVERRORINFO' USING ERR-NUMBER
                                        ERR-OFFSET
                                        ERR-RETCODE.
                :
           MOVE RETURN-CODE TO 戻り値.
                :
           IF 戻り値 = 0
             THEN
               *> NATIONAL-OF関数で発生したエラーに対する処理
                :
             ELSE
               *> NATIONAL-OF関数で正常実行後の処理
           END-IF.