Reraising a PL/SQL Exception
DECLARE
salary_too_high EXCEPTION;
current_salary NUMBER := 20000;
max_salary NUMBER := 10000;
erroneous_salary NUMBER;
BEGIN
BEGIN ---------- sub-block begins
IF current_salary > max_salary THEN
RAISE salary_too_high; -- raise the exception
END IF;
EXCEPTION
WHEN salary_too_high THEN
-- first step in handling the error
dbms_output.Put_line('Salary '
||erroneous_salary
||' is out of range.');
dbms_output.Put_line('Maximum salary is '
||max_salary
||'.');
RAISE; -- reraise the current exception
END; ------------ sub-block ends
EXCEPTION
WHEN salary_too_high THEN
-- handle the error more thoroughly
erroneous_salary := current_salary;
current_salary := max_salary;
dbms_output.Put_line('Revising salary from '
||erroneous_salary
||' to '
||current_salary
||'.');
END;
/
OUTPUT:-
Salary is out of range.
Maximum salary is 10000.
Revising salary from 20000 to 10000.
PL/SQL procedure successfully completed.
0 comments:
Post a Comment