In Oracle exception also raised in declare section or in executable section or in exception section, If exceptions are raised in executable section then those exception are handled in INNER BLOCK or OUTER BLOCK.
Whereas if Exception are raised in Declare section or in Exception section, then those Exception must be handled using outer block only, this is called as PL/SQL Exception Propagation.
BEGIN
DECLARE
Z VARCHAR2(3) := ‘ABCD’;
BEGIN
Dbms_output.put_line(Z);
Exception
When VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE(‘Invalid String Length’);
END;
WHEN VALUE_ERROR THEN
Dbms_output.put_line(‘Invalid String Length Handled through outer block only’);
END;