Cai no exception ?

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 :-)
Responder
gokden
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 264
Registrado em: Dom, 19 Ago 2007 8:18 pm
Localização: Ribeirão Preto - SP
Lucas de Souza

OCA Developer
Analista de sistemas

Bom.... tava dando manutenção em um programa aqui e achei isso:

Selecionar tudo

   begin
      vn_flag := 17;
      :bl_empr_usu.v_perm_fat_nf_venc  := fg_param_adm( 'PERM_NF_TIT_VENC_MEN'
                                                      , 'FAT'
                                                      , :global.emprusu
                                                      , 0  -- deve obrigatóriamente existir na cg_ref_code
                                                      );
   exception
   when vê_insere_r then
      pl_variaveis.vv_insere_r := 'S';
      if vn_flag = 17 then
         pl_variaveis.vv_nome := 'PERM_NF_TIT_VENC_MEN';
      end if;
      pl_insere_r;
   end;
ai tem vários begins semelhantes a esse mais muda os parametros do function e o nome do item..... e muda o vn_flag em numero sequencias até o 22.
e todos esses begins estão dentro de um begin maior.
e nesse begin maior tem mais um exception:

Selecionar tudo

EXCEPTION
   when vê_insere_r then
      pl_variaveis.vv_insere_r := 'S';
      if vn_flag = 1 then
         pl_variaveis.vv_nome := 'PED_VENDA_LIB_REP';
      elsif vn_flag = 2 then
         pl_variaveis.vv_nome := 'PED_REMESS_LIB_REP';
      elsif vn_flag = 3 then
         pl_variaveis.vv_nome := 'CTR_VENCTO_PEDIDO';
      elsif vn_flag = 4 then
      	 pl_variaveis.vv_nome := 'VER_VALID_CNPJ_CLI';
      elsif vn_flag = 5 then
      	 pl_variaveis.vv_nome := 'PERM_DT_RETROAT_NF';
...
essa procedure é feita somente assim mesmo, não tem mais nada de diferente entre os outros begins....

ai vem a pergunta...
como qui ele vai cair no exception vê_insere_r se não tem raise em nenhum lugar ??
e é claro qui caso caia no ultimo exception o vn_flag vai ser igual a 22 !
e não tem o when others também.... =D
Avatar do usuário
vetis
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 36
Registrado em: Sex, 25 Abr 2008 10:29 am
Localização: cariacica - es
Thiago Vetis
Creedence Clearwater Revival - :-o

Muito doido!

:-o
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

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

Parece que usaram o método "copiar-colar" de alguma outra procedure, hehehhe
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes