COBOL2002 ユーザーズガイド
共通例外処理では,例外の検出された要因,および例外処理の指定有無によって,実行される処理が異なります。それぞれの場合の処理について,「表22-13 手続き文で検出された例外」,「表22-14 RAISE文によって引き起こされた例外」,および「表22-15 例外の伝播によって検出された例外」に示します。
なお,TURN指令のチェックがONの場合の動作は,表の左から順にチェックされ,該当するものが実行されます。
表22-13 手続き文で検出された例外
例外の 致命度 |
TURN指令のチェックがOFF | TURN指令のチェックがON | |||
---|---|---|---|---|---|
該当する宣言手続きがある※1 | PROPAGATE指令がON | 例外処理なし | |||
呼び出し元が例外を受け取れないプログラム※2 | 左記以外 | ||||
致命的 | 実行時エラー または 実行を継続※3 |
該当する宣言手続きを実行したあと,エラーメッセージ(KCCC0015R-S)を出力し,実行単位が異常終了※4 | エラーメッセージ(KCCC0403R-S)を出力し,実行単位が異常終了 | 例外を伝播 | エラーメッセージ(KCCC0401R-S)を出力し,実行単位が異常終了 |
非致命的 | 実行を継続※5 | 該当する宣言手続きを実行し,次の文から実行を継続 | 実行を継続※5 | 実行を継続※5 | 実行を継続※5 |
表22-14 RAISE文によって引き起こされた例外
例外の 致命度 |
該当する宣言手続きがある※1 | PROPAGATE指令がON | 例外処理なし |
---|---|---|---|
致命的 | 該当する宣言手続きを実行したあと,エラーメッセージ(KCCC0015R-S)を出力し,実行単位が異常終了※2 | 例外を伝播 | エラーメッセージ(KCCC0401R-S)を出力し,実行単位が異常終了 |
非致命的 | 該当する宣言手続きを実行し,RAISE文の次の文から実行を継続 | RAISE文の次の文から実行を継続 | RAISE文の次の文から実行を継続 |
表22-15 例外の伝播によって検出された例外
例外の 致命度 |
TURN指令のチェックがOFF | TURN指令のチェックがON | ||
---|---|---|---|---|
該当する宣言手続きがある※1 | PROPAGATE指令がON | 例外処理なし | ||
致命的 | エラーメッセージ(KCCC0402R-S)を出力し,実行単位が異常終了 | 該当する宣言手続きを実行したあと,エラーメッセージ(KCCC0015R-S)を出力し,実行単位が異常終了※2 | 例外を伝播 | エラーメッセージ(KCCC0401R-S)を出力し,実行単位が異常終了 |
非致命的※3 | 次の文から実行を継続※4 | 該当する宣言手続きを実行し,次の文から実行を継続※4 | 次の文から実行を継続※4 | 次の文から実行を継続※4 |
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.