この図は、例外および関連する例外ハンドラを示しています。トリガーは、エラー条件をチェックする条件文を使用して、アプリケーション・エラーを呼び出します。ユーザー定義のエラー・コードおよびメッセージは、エラー・ハンドラに戻されます。

PROCEDURE fire_emp (empid NUMBER) IS
  invalid_empid EXCEPTION
  PRAGMA EXCEPTION_INIT (invalid_empid, -20101);
BEGIN
  DELETE FROM emp WHERE empno = empid;
EXCEPTION
  WHEN invlid_empid THEN
   INSERT INTO emp_audit
    VALUES (empid, 'Fired before probation ended');
END;

次のプログラムでは、起動側環境(先行するプログラム)に対してエラー番号20101が戻されます。

TRIGGER emp_probation
BEFORE DELETE ON emp
FOR EACH ROW
BEGIN
  IF (sysdate - :old.hiredate) < 30 THEN
    raise_application_error(20101,
     'Employee' || old.ename || ' on probation')
  END IF;
END;