PL/I プログラムの実行中には、さまざまなイベントが発生します。ユーザーは、 それらのイベントに対してテスト、応答、または回復アクションを行うことができます。 これらのイベントは、条件 と呼ばれ、検出されたときに発生 します。 条件には、起こることが予期できないエラー (オーバーフローや 入出力伝送エラーなど) もあれば、起こると分かっている エラー (入力ファイルの終わりなど) もあります。 SIGNAL ステートメントを使用して条件をプログラム中に直接発生させることが できます (この方法はテスト中に非常に役立ちます)。
条件をアプリケーションで制御できるようにするには、その条件を 割り込み可能 にします。また、割り込み可能な条件が起こると アクションが確立 されます。 条件が割り込み禁止になっていると、その条件が起こってもなんの アクションも実行されません。 プログラムはそのイベントが起こったことを認知しません。 確立されるアクションは、ON ユニットであることもあれば、 その条件に対して定義された暗黙アクションである場合もあります。
呼び出された ON ユニットは、パラメーターのないプロシージャーと見なされます。 ON ユニットを使用する場合には、条件を引き起こした原因を調べる際に役立つ組み込み関数と疑似変数が提供されます。 疑似変数は、エラーを訂正して回復する際によく使用されます。 組み込み関数、疑似変数、およびサブルーチンに、組み込み関数と疑似関数を示しています。
多くの条件では、暗黙アクションとして ERROR 条件が発生します。 したがって、ERROR 条件は、それぞれの条件を個別に検査するのではなく、多数の異なる条件を検査するのに使用される共通の条件です。 この点で ONCODE 組み込み関数は特に便利なもので、これを使用すれば それらの条件を起こしている状況を区別することができます。 検出される条件やエラーに対応するコードについては、 「メッセージおよびコード」にリストが記載されています。