プログラムの実行中に特定の条件が通知されたときに実行するアクションを定義します。
構文
- 形式 1:
-
ON condition–name ON-unit,
- 形式 2:
-
ON condition–name SYSTEM
パラメーター
- condition-name
- 次のいずれか:
- ANYCONDITION
- AREA
- ATTENTION
- CONDITION (name)
- CONVERSION
- ENDFILE(1)
- ENDPAGE(1)
- ERROR
- FINISH
- KEY(1)
- OVERFLOW
- RECORD(1)
- ENDFILE(f)
- ENDPAGE(f)
- ERROR
- FINISH
- KEY(f)
- OVERFLOW
- RECORD(f)
- SIZE
- STRINGRANGE
- UNDEFINEDFILE(f)
- UNDERFLOW
- USERCONDITION(expression)
- USERCONDITION(SS$_UNWIND)
- ZERODIVIDE
注: 各条件の説明については、「Open PL/I の条件」を参照してください。
- unit
- BEGIN ブロックか以下以外の文:
- DECLARE
- DEFAULT
- DO
- END
- ENTRY
- FORMAT
- LEAVE
- OTHERWISE
- PROCEDURE
- RETURN
- SELECT
- SYSTEM
- ON-unit のユーザー指定コードを実行する代わりに、条件を説明するシステム生成メッセージが表示されて ERROR 条件が通知されます。
説明
- ON は複合文ですが、入れ子にすることはできません。例外条件に応じた ON 文の使用については、「例外条件を処理する文」のセクションで詳しく説明しています。
- 指定すると、STRINGRANGE 条件プレフィックスの範囲内を除き、プログラム内で STRINGRANGE 条件が無効になります。この条件の詳細については、IBM 言語リファレンスの STRINGRANGE 条件のトピックを参照してください。
例
ON ENDFILE (F )
BEGIN;
.
.
.
END;
この例では、ファイル終了条件に達すると、BEGIN 文と END 文の間の文のブロックが実行されます。