Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

ON ステートメント

ON ステートメントは、あるアクションを設定するためのステートメントです。この アクションは、引き続いて設定された条件の有効範囲内で割り込み可能な条件が引き続い て起こると実行されます。

構文図を読む構文図をスキップする       .-,---------.
       V           |
>>-ON----condition-+--+------+--+-SYSTEM;-+--------------------><
                      '-SNAP-'  '-ON-unit-'
 
condition
条件に説明されている条件、または CONDITION 属性に よって定義されている条件のいずれかです。
SNAP
割り込み可能条件が起こったとき、その条件に関しての診断情報が印刷されることを指定します。 SNAP オプションのアクションが行われてから、ON ユニットのアクションが行われます。

SNAP と SYSTEM を指定すると、暗黙アクションが取られた直後に SNAP 情報が印刷されます。

SYSTEM
暗黙アクションを実行することを指定します。 すべての条件に関して同じ暗黙アクションが取られるとは限りませんが、ほとんどの条件の場合、メッセージが印刷され、ERROR 条件が引き起こされます。 条件ごとの暗黙アクションについては、条件で説明します。
ON-unit
指定された条件が起こり、しかも割り込み可能であるときに実行されるアクションを指定します。 ON-unit そのものの中にステートメント (複数も可) を書いて、実行されるアクションを定義します。 ON ステートメントが実行されることを、指定の条件に 関する ON ユニットが確立される といいます。 ON ユニットは、ON ステートメントが実行される時点では実行されません。指定された条件が生じた場合のみ実行されます。

ON ユニットは、ラベルなしの単一の単純ステートメント、またはラベルなしの開始ブロックのどちら でもかまいません。 単純ステートメントの場合は、BEGIN、DECLARE、DEFAULT、DO、END、ENTRY、FORMAT、ITERATE、 LEAVE、OTHERWISE、PROCEDURE、RETURN、SELECT、WHEN、 または % ステートメント以外の任意のステートメントとすることができます。 ON ユニットが開始ブロックの場合は、 RETURN ステートメントは開始ブロック内のネストされた プロシージャー内にのみ現れます。 LEAVE ステートメントは開始ブロック内の ネストされた DO グループ内にのみ現れます。

ただし、セミコロン (;) または RESIGNAL ステートメントのいずれかでのみ 形成されている ON ユニットを除き、ON ユニットは、それがあるブロックに対し て内部的なプロシージャー (パラメーターなしの) と見なされます。 ON ユニット内で参照された名前は、その条件が起こったときの環境で 知られている名前ではなく、その ON ユニットを指定した ON ステートメントが 実行されたときの環境で知られている名前です。

ON ユニットの実行が完了すると、通常は、その ON ユニットに制御を 渡したブロックに制御が戻されます。 プロシージャーの場合と同様に、GO TO ステートメントを使用して ON ユニットの外に制御を移すことができ、 その場合は、GO TO ステートメントで指定した場所に制御権が移され、正常な戻りは行われません。

ON ユニットからどこの場所に制御が戻されるかは、それぞれの条件によって異なります。 条件ごとの正常な戻りについては、条件で説明します。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)