ON ユニットの実行中に条件が起こり、その条件によりさらに別の ON ユニットを指定することがあります。 ある ON ユニット内で条件が起こったか、または SIGNAL ステートメントによって 条件が引き起こされたために別の ON ユニットに入った場合、その別の ON ユニッ トを、動的に派生した ON ユニットといいます。 動的に派生した ON ユニットから正常に戻ると、その条件を 引き起こした ON ユニットの環境が再び設定されます。
ERROR ON ユニット内で ERROR 条件が起こったとき、同一の ERROR ON ユニットが 実行されると、再び ERROR 条件が起こってループ状態になります。 ループ状態になって最大ネスト・レベルを超えると、 メッセージが印刷され、アプリケーションは終了します。 次の方法を使用すれば、 このような状況で発生するループを防止することができます。
on error begin; on error system;
·
·
·
end;