Escolar Documentos
Profissional Documentos
Cultura Documentos
Procedural
Tratamento de
Exceção
1) Tratamento de Exceção
2
TRATAMENTO DE EXCEÇÃO
1 DECLARE
2 nome _ exceçao EXCEPTION;
3 BEGlN
4 RAISE exceçao;
5 EXCEPTION
6 WHEN nome_exceçao THEN
7 instruções para tratamento da exceçao;
8 WHEN OTHERS THEN
9 instruções para tratamento da exceçao;
10 END;
declare
divisor number:=0;
dividendo number:=89;
result number;
begin
result := dividendo/divisor;
dbms_output.put_line('Divisao=' || result);
EXCEPTION
WHEN ZERO_DIVIDE THEN
dbms_output.put_line('Nao é possível
realizar divisão por zero ');
end; 11
13
declare
nrovenda_invalido EXCEPTION;
v_nrovenda fatura.nro_venda%type := 10;
begin
UPDATE fatura SET vlr_fatura = 5000 WHERE
nro_venda = v_nrovenda;
IF sql%notfound THEN
RAISE nrovenda_invalido;
END IF;
EXCEPTION
WHEN nrovenda_invalido THEN
dbms_output.put_line('Nro da venda nao
existe. Nao foi possível atualizar a venda.'); 15
16
O procedimento
RAISE_APPLICATION_ERROR é
utilizado para comunicar uma
exceção definida interativamente,
retornando um código ou uma
mensagem de erro não
padronizada. Para aplicar a
instrução, utiliza-se a sintaxe:
18
declare
nrovenda_invalido EXCEPTION;
v_nrovenda fatura.nro_venda%type := 10;
v_codigo_erro varchar2(20);
v_mensagem_erro varchar2(255);
begin
DELETE FROM fatura WHERE nro_venda =
v_nrovenda;
IF sql%notfound THEN
RAISE_APPLICATION_ERROR(-20201, 'Fatura
não encontrada');
END IF;
end; 19
OBRIGADO !!!
ZAP 9750-2901
@profjsflavioalves
20