V6 例外モード (『V6 の例外互換性の使用』を参照) を使用する場合は、 vgVar.handleOverflow システム変数を使用して、オーバーフロー後のエラーを EGL で処理する方法を指定できます。通常は、この変数のデフォルト設定 (0) を 使用します。
V6 例外モードを使用していない場合、変数オーバーフローが発生すると、 EGL は RuntimeException をスローします。
代入時にオーバーフローが発生した場合、オーバーフローを処理するよう設定していれば、 ターゲット変数にはソース値の一部が代入されます。
vgVar.handleOverflow は、 次の表のいずれかの値に設定できます。
| 値 | 結果 |
|---|---|
| 0 (デフォルト値) | EGL ランタイム・コードは sysVar.overflowIndicator システム変数を 1 に 設定して処理を続行する。 COBOL 生成の際にシンボリック・パラメーター HANDLEOVERFLOW を使用することにより、vgVar.handleOverflow のデフォルト値をオーバーライドできます。 詳しくは、『ユーザーが設定可能な事前定義シンボリック・パラメーター』を参照してください。 |
| 1 | EGL は RuntimeException をスローする。 |
| 2 | EGL ランタイム・コードは sysVar.overflowIndicator システム変数を 1 に 設定して処理を続行する。 この値は以前のバージョンとの互換性のために保持されており、 値 0 の場合と同じ効果を持ちます。 |
次の例は、vgVar.handleOverflow 変数を示しています。
vgVar.handleOverflow = 1;
| プラットフォーム | 問題 |
|---|---|
| COBOL 生成 | checkNumericOverflow ビルド記述子オプションを YES に設定している場合を除き、vgVar.handleOverflow は、無視されます。checkNumericOverflow に NO を設定して V6 例外モードを使用すると、いずれのタイプのオーバーフローが発生した場合でもプログラムは終了されます。 シンボリック・パラメーター HANDLEOVERFLOW を使用することにより、vgVar.handleOverflow のデフォルト値を変更できます。 |