Jalp

Tratamento de Erro Pré Determinadas

  • 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;
    				

Tratamento de Erro Não Pré Determinadas

  • 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;
    				

Tratamento de Erro Definido pelo Usuário

  • 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;