ページの先頭行へ戻る
NetCOBOL for .NET V8.0 メッセージ集
FUJITSU Software

2.5.229 JMN5778I-W

TRY文のFINALLYブロック内でWHENEVER文は無効となります.

      000001 IDENTIFICATION DIVISION.
      000002 PROGRAM-ID.    P5778.
      000003 ENVIRONMENT    DIVISION.
      000004 CONFIGURATION   SECTION.
      000005 REPOSITORY.
      000006     CLASS SYSEXP AS "System.Exception".
      000007 DATA           DIVISION.
      000008 WORKING-STORAGE SECTION.
      000009 01 WDA         OBJECT REFERENCE SYSEXP.
      000010     EXEC SQL BEGIN DECLARE SECTION END-EXEC.
      000011 01 在庫表.
      000012   02 製品番号   PIC S9(4) COMP-5.
      000013   02 製品名     PIC X(20).
      000014   02 在庫数量   PIC S9(9) COMP-5.
      000015   02 倉庫番号   PIC S9(4) COMP-5.
      000016 01 SQLSTATE     PIC X(5).
      000017 01 SQLMSG       PIC X(128).
      000018     EXEC SQL END   DECLARE SECTION END-EXEC.
      000019 PROCEDURE      DIVISION.
      000020     EXEC SQL WHENEVER SQLERROR GO TO :L1 END-EXEC
      000021     EXEC SQL
      000022       DECLARE CUR1 CURSOR FOR SELECT * FROM STOCK
      000023     END-EXEC.
      000024     EXEC SQL OPEN CUR1 END-EXEC.
      000025*
      000026     TRY
      000027       EXEC SQL FETCH CUR1 INTO :在庫表  END-EXEC
      000028     CATCH WDA
      000029       DISPLAY SQLSTATE " : " SQLMSG
      000030     FINALLY
      000031       EXEC SQL CLOSE CUR1 END-EXEC
      000032     END-TRY.
      000033 L1.
      000034     EXIT PROGRAM
      000035 END PROGRAM    P5778.
    

P5778.cob (31) : JMN5778I-W TRY文のFINALLYブロック内でWHENEVER文は無効となります.

詳細な説明

GO TO指定のWHENEVER文(埋込みSQL例外宣言)が有効である場合,埋込みSQL文の直後には暗黙にSQL例外処理としてGO TO文が生成されます.一方,TRY文のFINALLYブロックにGO TO文は記述できません.

このため,TRY文のFINALLYブロック内に記述した埋込みSQL文に対してはSQL例外宣言は無効になります.