COBOL2002 ユーザーズガイド
呼び出し先プログラムで検出された例外情報を,呼び出し元プログラムに伝える(以下,伝播という)ことができます。
あるプログラムで例外が引き起こされ,該当する宣言手続きがない場合,呼び出し元プログラムに例外を伝播できます。
例外の伝播の例を,次に示します。
- プログラム「PARENTPROGRAM」中のCALL文で,プログラム「CHILDPROGRAM」を呼び出します。
- プログラム「CHILDPROGRAM」中のDIVIDE文で,ゼロによる除算の例外が検出されます(例外名:EC-SIZE-ZERO-DIVIDE)。
- PROPAGATE指令がONなので,呼び出し元のCALL文に例外が伝播します。
- 例外の伝播によってCALL文で例外が検出され(例外名:EC-SIZE-ZERO-DIVIDE),例外が引き起こされます。これによって,例外名EC-SIZEを指定したUSE手続きへ制御が移ります。
- EC-SIZE-ZERO-DIVIDEは致命的な例外のため,例外宣言節の実行後,プログラムが異常終了します。
例外を伝播させる方法には,次の2種類があります。
- PROPAGATE指令によって,例外を自動伝播させる
- GOBACK文またはEXIT文のRAISING指定を使用して,明示的に呼び出し元へ例外を伝播させる
- <この節の構成>
- 22.5.1 PROPAGATE指令による例外の自動伝播
- 22.5.2 EXIT文,GOBACK文のRAISING指定による例外の伝播
- 22.5.3 例外を受け取れないプログラムに例外を伝播させた場合の動作
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.