declare
v_name varchar2(30);
begin
begin
select ename into v_name from emp where empno = 1000;
dbms_output.put_line('executa ?');
exception
when no_data_found then
dbms_output.put_line('Erro tratado pelo bloco interno');
end;
dbms_output.put_line('continua executando... ');
exception
when no_data_found then
dbms_output.put_line('Erro tratado pelo bloco externo');
when others then
dbms_output.put_line('Erro tratado com OTHERS ' || SQLERRM);
end;
DECLARE
E_RRO EXCEPTION ;
PRAGMA EXCEPTION_INIT(E_RRO, -12899); -- Erro Associado ao código de erro : -12899
BEGIN
INSERT INTO DEPT VALUES ( 99, 'ASDFGQWERTQWERTYQWERTYQWERTYWERTYQWERTYUI', '2');
EXCEPTION
WHEN E_RRO THEN
RAISE_APPLICATION_ERROR(-20001 , 'STRING MUITO GRANDE P/ DNAME');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20500 , 'ERRO GENERICO');
END;
DECLARE
E_RRO EXCEPTION ;-- DECLARA EXCECAO
BEGIN
RAISE E_RRO; -- GERA A EXCECAO
EXCEPTION
WHEN E_RRO THEN -- TRATA A EXCECAO
RAISE_APPLICATION_ERROR(-20001 , 'ERRO DEFINIDO PELO PROGRAMADOR');
END;