COBOL2002 言語 拡張仕様編


9.6.1 WHENEVER(埋め込み例外宣言)文(データベースアクセス機能)

形式

[図データ]

機能

埋め込み例外宣言(embedded exception declaration)は,SQL文に例外が生じるときに取られる動作を規定する。

構文規則
  • NOT FOUND指定をした場合,STOPを指定してはならない。

  • 手続き名に段落名を指定した場合,節名では修飾できない。

  • 埋め込み例外宣言の有効範囲は,プログラム単位,関数単位およびメソッド単位とする。

  • GOTOとGO TOは,同義語であり,どちらを書いてもよい。

一般規則
  1. 埋め込み例外宣言は,プログラムの実行の流れには関係なく,原始プログラム上に記述された位置によって決まる。すなわち,ある一つの埋め込み例外宣言で指定された処理は原始プログラム上の出現順で次に現れた同じ指定の埋め込み例外宣言までにある,宣言系とする埋め込みSQL文を除くすべての埋め込みSQL文に対して有効となる。

    次にその有効範囲の例を示す。

    [図データ]

    (a)のSELECT文の場合

    SQLERROR条件のときだけGO TO文が実行される。

    (b)のSELECT文の場合

    SQLERROR条件のときはGO TO文が実行され,NOT FOUND条件のときはPERFORM文が実行される。

    (c)のSELECT文の場合

    NOT FOUND条件のときだけPERFORM文が実行される。

  2. 各指定によって,有効範囲のSQL文実行で各動作が有効となる契機を次に示す。

    指定

    有効となる契機

    SQLERROR

    SQLCODE変数に負の値が設定される契機

    SQLWARNING

    SQLCODE変数に100でない正の値が設定される契機

    NOT FOUND

    SQLCODE変数に100が設定される契機

    SQLCODE変数の詳細については「9.4.1 SQLCODE変数(データベースアクセス機能)」を参照。

  3. 各指定が,有効となる条件を満たした場合のSQL文実行後の動作を次に示す。

    動作

    意味

    CONTINUE

    各指定の有効範囲の終わりを指示し,以前の同じ指定の動作を以降のSQL文の実行に適用しない。

    STOP

    COBOLの STOP RUN文を実行することを指示する。

    GOTO またはGO TO

    COBOLの GO TO文を実行することを指示する。

    PERFORM

    COBOLの PERFORM文を実行することを指示する。