PL/I プログラムの実行中にエラーが検出された場合に、実行を終了、またはリカバリーを試行する ON ユニットが そのプログラムに存在しなければ、ジョブは異常終了します。 ただし、下記のステートメントを含む ERROR ON ユニットを使用すれば、エラーが発生した時点のプログラムの状況を記録できます。
on error
begin;
on error system;
call plidump ('TFBS','This is a dump');
end;
ON ユニットに含まれる ON ERROR SYSTEM; により、未初期化変数を送信しようとしてさらにエラーが発生しても エンドレス・ループにはならないことが保証されます。
処理される条件の特定タイプに基づいた処置を行うようにするには、ONCONDID 関数を使用します (この関数の詳細は、 「PL/I 言語解説書」を参照して ください)。
on anycondition
begin;
on anycondition system;
select( oncondid() );
when( condid_ofl )
.
.
.
when( condid_ufl )
.
.
.
when( condid_zdiv )
.
.
.
otherwise
resignal;
end;
end;