Consistência em cascata

Este forum é dedicado a códigos errados que se encontram por aí, ou seja, coisas que não se deve fazer de jeito nenhum! Não coloque neste forum dúvidas! (apenas situações bizarras do nosso dia a dia :-)
  

Mensagemem Qua, 27 Set 2006 3:38 pm

Aí vai mais um exemplo de coisa que não se deve fazer.
Bom, esse exemplo não é uma reprodução fiel do programa em questão. Estou fazendo um resumo do programa que tem uma consistência complicada e difícil de se entender. Veja do que eu falo:

Código: Selecionar todos
IF testa algo
THEN Mensagem de erro. para programa.
ELSE
  IF testa outra coisa
  THEN Mensagem de erro. para programa.
  ELSE
    IF testa outra coisa qualquer
    THEN  Mensagem de erro. para programa.
    ELSE
      --se passou todas consistências, roda a rotina.
      aqui vai o código do programa.
      .
      .
      .
    END IF;
  END IF;
END IF;


O programador poderia simplesmente ter feito da seguinte forma muito mais fácil de se entender.
Código: Selecionar todos
IF testa algo
THEN Mensagem de erro. para programa.
END IF;

IF testa outra coisa
THEN Mensagem de erro. para programa.
END IF;

IF testa outra coisa qualquer
THEN  Mensagem de erro. para programa.
END IF;

--se passou todas consistências, roda a rotina.
aqui vai o código do programa.
.
.
.

:(
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Qui, 28 Set 2006 2:15 pm

Exatamente DR. Gori
e para melhorar aida poderia declarar uma exception veja:

Código: Selecionar todos
declare
  V_MENSAGEM  VARCHAR2(2000);
  E_GERAL     EXCEPTION;
BEGIN
  IF testa algo THEN
    V_MENSAGEM := Mensagem de erro. para programa;
    RAISE E_GERAL;
  END IF;
 
  IF testa outra coisa THEN
    V_MENSAGEM := Mensagem de erro. para programa;
    RAISE E_GERAL;
  END IF;
 
  IF testa outra coisa qualquer THEN 
    V_MENSAGEM := Mensagem de erro. para programa;
    RAISE E_GERAL;
  END IF;

  ai se passou pelas validações sem cair no Exception
  continua executando o procedimento

EXCEPTION
  WHEN E_GERAL THEN
    manda a mensagem para o usuario;
END;

TBou
Localização: Campo Grande - MS

Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas



Voltar para Códigos Duvidosos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante