Declare variables in exception handler : Exception « PL SQL Programming « Oracle PL/SQL Tutorial






SQL> set serveroutput on
SQL> DECLARE
  2       Num_a NUMBER := 6;
  3       Num_b NUMBER;
  4  BEGIN
  5       Num_b := 0;
  6       Num_a := Num_a / Num_b;
  7       Num_b := 7;
  8       dbms_output.put_line(' Value of Num_b ' || Num_b);
  9  EXCEPTION
 10       WHEN ZERO_DIVIDE THEN
 11            DECLARE
 12                 err_num NUMBER        := SQLCODE;
 13                 err_msg VARCHAR2(512) := SQLERRM;
 14            BEGIN
 15                 dbms_output.put_line('ORA Error Number '  || err_num );
 16                 dbms_output.put_line('ORA Error message ' || err_msg);
 17                 dbms_output.put_line(' Value of Num_a is '   || Num_a);
 18                 dbms_output.put_line(' Value of Num_b is '   || Num_b);
 19            END;
 20  END;
 21  /
ORA Error Number -1476
ORA Error message ORA-01476: divisor is equal to zero
Value of Num_a is 6
Value of Num_b is 0

PL/SQL procedure successfully completed.

SQL>
SQL>








24.14.Exception
24.14.1.Exceptions
24.14.2.Types of more commonly used Exceptions
24.14.3.Exception Handling
24.14.4.The NULL Statement
24.14.5.ZERO_DIVIDE Exception
24.14.6.When the exception occurs, program control passes to the EXCEPTION block where the WHEN clause is examined for a matching exception.
24.14.7.Understanding Different Exception Types
24.14.8.DUP_VAL_ON_INDEX Exception
24.14.9.INVALID_NUMBER Exception
24.14.10.Catch 'divide by zero' exception
24.14.11.OTHERS Exception
24.14.12.Because OTHERS handles all exceptions, you must list it after any specific exceptions in your EXCEPTION block.
24.14.13.Declare variables in exception handler
24.14.14.Data not found exception
24.14.15.Too many rows exception