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

ANYCONDITION 条件

状況
ANYCONDITION は常に使用可能です。
結果
結果は、基礎的な条件の場合と同じです。
原因と構文
SIGNAL ANYCONDITION は使用できません。 ANYCONDITION は、条件をトラップする ON ユニットを確立 (または取り消し) する ON (お よび REVERT) ステートメントでのみ使用できます。 それらの条件には、CONDITION 条件も含みます。 この条件はブロック内で起こるもので、 そのブロック内にあるほかの適格な ON ユニットによってトラップされません。

次に示す例では、すべての ERROR 条件は、開始ブロック内で処理され、 FINISH 条件は、システムによって処理され、その他のすべての条件は、 handle_All_Others という名前のルーチンの呼び出しによって処理さ れることになります。

 
on error
begin;

·
·
·
end;   on finish system; on anycondition call Handle_all_others;
注:
無限ループを避けるために、ON ANYCONDITION を使用する時には ON FINISH (前述の例にあるように) の使用が必要になる場合があります。

条件が発生すると、呼び出しスタックが調べられ (逆方向に)、 その条件の ON ユニットを含むブロックが検索されます。 そのような ON ユニット、または ON ANYCONDITION ON ユニットを 含む最初のブロックが検出されると、検索は停止します。 そのような ON が検出されず、その条件が暗黙アクションによって ERROR に プロモートされる場合は (またその場合に限り)、スタックが再度調べられ、ON ERROR ON ユニットが検索されます。

ANYCONDITION ON ユニット内で ONCONDID 組み込み関数を使用して、どの条件が処理 されているかを判別することができます。また、ONCONDCOND 組み込み関数を使用 すれば、CONDITION 条件の名前を判別することができます。 ONFILE のようなほかの ON 組み込み関数を使用すれば、 正確な原因を判別し、その他の関連する情報を知ることができます。 これらの組み込み関数については、組み込み関数、疑似変数、およびサブルーチンにまとめてあります。

構文図を読む構文図をスキップする>>-ANYCONDITION------------------------------------------------><
 
省略形
ANYCOND
暗黙アクション
暗黙アクションは、基礎的な条件の場合と同じです。
正常な戻り
正常な戻りは、基礎的な条件の場合と同じです。
条件コード
ANYCONDITION に固有の条件コードはありません。

Terms of use | Feedback

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