COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

22.5 例外の伝播

呼び出し先プログラムで検出された例外情報を,呼び出し元プログラムに伝える(以下,伝播という)ことができます。

あるプログラムで例外が引き起こされ,該当する宣言手続きがない場合,呼び出し元プログラムに例外を伝播できます。

例外の伝播の例を,次に示します。

[図データ]

  1. プログラム「PARENTPROGRAM」中のCALL文で,プログラム「CHILDPROGRAM」を呼び出します。
  2. プログラム「CHILDPROGRAM」中のDIVIDE文で,ゼロによる除算の例外が検出されます(例外名:EC-SIZE-ZERO-DIVIDE)。
  3. PROPAGATE指令がONなので,呼び出し元のCALL文に例外が伝播します。
  4. 例外の伝播によってCALL文で例外が検出され(例外名:EC-SIZE-ZERO-DIVIDE),例外が引き起こされます。これによって,例外名EC-SIZEを指定したUSE手続きへ制御が移ります。
  5. EC-SIZE-ZERO-DIVIDEは致命的な例外のため,例外宣言節の実行後,プログラムが異常終了します。

 

例外を伝播させる方法には,次の2種類があります。

<この節の構成>
22.5.1 PROPAGATE指令による例外の自動伝播
22.5.2 EXIT文,GOBACK文のRAISING指定による例外の伝播
22.5.3 例外を受け取れないプログラムに例外を伝播させた場合の動作