Cascade Consistency

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 :-)
Post Reply
User avatar
dr_gori
Moderador
Moderador
Posts: 5024
Joined: Mon, 03 May 2004 3:08 pm
Location: Portland, OR USA
Contact:
Thomas F. G

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

There is another example of something that should not be done.
Well, this example is not a faithful reproduction of the program in question. I am making a summary of the program that has a complicated and difficult consistency to understand. See what I say:

Select all

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;
The programmer could simply have done as follows much easier to understand.

Select all

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. 
. 
. 
. 
:(
User avatar
TBou
Rank: Analista Sênior
Rank: Analista Sênior
Posts: 136
Joined: Thu, 05 Aug 2004 9:33 am
Location: Campo Grande - MS
Thiago Bourscheidt
thiago.info@apoiorural.com.br
Analista de Sistemas

Exactly dr. GORI
and to improve AIDA could declare an Exception see:

Select all

 
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; 
 
Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 14 guests