handleOverflow

V6 例外モード (『V6 の例外互換性の使用』を参照) を使用する場合は、 vgVar.handleOverflow システム変数を使用して、オーバーフロー後のエラーを EGL で処理する方法を指定できます。通常は、この変数のデフォルト設定 (0) を 使用します。

2 つのタイプのオーバーフローが発生する可能性があります。

V6 例外モードを使用していない場合、変数オーバーフローが発生すると、 EGL は RuntimeException をスローします。

代入時にオーバーフローが発生した場合、オーバーフローを処理するよう設定していれば、 ターゲット変数にはソース値の一部が代入されます。

vgVar.handleOverflow は、 次の表のいずれかの値に設定できます。

表 1. handleOverflow の値
結果
0 (デフォルト値) EGL ランタイム・コードは sysVar.overflowIndicator システム変数を 1 に 設定して処理を続行する。 COBOL 生成の際にシンボリック・パラメーター HANDLEOVERFLOW を使用することにより、vgVar.handleOverflow のデフォルト値をオーバーライドできます。 詳しくは、『ユーザーが設定可能な事前定義シンボリック・パラメーター』を参照してください。
1 EGL は RuntimeException をスローする。
2 EGL ランタイム・コードは sysVar.overflowIndicator システム変数を 1 に 設定して処理を続行する。 この値は以前のバージョンとの互換性のために保持されており、 値 0 の場合と同じ効果を持ちます。
vgVar.handleOverflow には、次の特性があります。
プリミティブ型
NUM
データ長
1
セグメント化された converse にわたって値が保存されるかどうか
はい

次の例は、vgVar.handleOverflow 変数を示しています。

  vgVar.handleOverflow = 1;

互換性に関する考慮事項

表 2. 互換性に関する考慮事項
プラットフォーム 問題
COBOL 生成 checkNumericOverflow ビルド記述子オプションを YES に設定している場合を除き、vgVar.handleOverflow は、無視されます。checkNumericOverflow に NO を設定して V6 例外モードを使用すると、いずれのタイプのオーバーフローが発生した場合でもプログラムは終了されます。

シンボリック・パラメーター HANDLEOVERFLOW を使用することにより、vgVar.handleOverflow のデフォルト値を変更できます。


フィードバック