ON OVERFLOW 句

命令ステートメント-1 は、次の場合に実行されます。
  • ポインター値 (明示または暗黙) が 1 より小さい場合。
  • ポインター値 (明示または暗黙) が、送り出しフィールドの長さと等しい値を超えている場合。
  • すべてのデータ受け入れフィールドが影響された後、送り出しフィールドにまだ未調査の文字が含まれている場合。
上記のいずれかの条件が生じると、次のようになります。
  1. オーバーフロー条件が発生し、それ以上データが転送されません。
  2. UNSTRING 操作が終了されます。
  3. NOT ON OVERFLOW 句 が指 定されている場合は無視されます。
  4. 制御権が UNSTRING ステートメントの終わり、または命令ステートメント-1 (ON OVERFLOW 句が指定されている場合) に移動されます。

制御権が命令ステートメント-1 に渡されると、 命令ステートメント-1 に指定されている各ステートメントについての規則に従って実行が継続されます。 制御権の明示的な移動をもたらすプロシージャー分岐ステートメントまたは条件ステートメントが実行される場合には、制御権はそのステートメントについての規則に従って移動されます。 それ以外の場合には、制御権は命令ステートメント-1 の実行完了時に UNSTRING ステートメントの終わりに移動されます。

オーバーフロー条件をもたらす条件が検出されなかった場合、ON OVERFLOW 句 (指定されている場合) は無視されます。 NOT ON OVERFLOW 句が指定されている場合には、制御権は命令ステートメント-2 に移動されます。 それ以外の場合には、制御権は UNSTRING ステートメントの終わりに移動されます。

制御権が命令ステートメント-2 に移動されると、 命令ステートメント-2 に指定されている各ステートメントについての規則に従って実行が継続されます。 制御権の明示的な移動をもたらすプロシージャー分岐ステートメントまたは条件ステートメントが実行される場合には、 制御権はそのステートメントについての規則に従って移動されます。 それ以外の場合には、制御権は命令ステートメント-2 の実行完了時に UNSTRING ステートメントの終わりに移動されます。