BlackTDN Search

sexta-feira, 1 de junho de 2012

BlackTDN :: ADVPL ~ TRY/CATCH/END Quando Utilizar?

 

Try-Catch

Tempos atrás “simulei” a instrução Try/Cacth/End usando “Comandos Definidos pelo Usuário”. Não pude usar TRY/CATCH pois, a partir de uma “Build” desconhecida, passou a integrar a lista de palavras reservadas da linguagem ADVPL.

Sabendo que existe, em ADVPL, a instrução TRY/CATCH/END quando utilizá-la?

 

U_TRYCATCH               18 Macro FC: cannot find function :TryTest
   1: User Function TryCatch
   2:  
   3:     Local x
   4:     Local y              := "TryTest"
   5:  
   6:     Local bError         := { |e| oError := e , Break(e) }
   7:     Local bErrorBlock    := ErrorBlock( bError )
   8:     
   9:     Local oError
  10:  
  11:     BEGIN SEQUENCE
  12:         TRY
  13:             x := &y.(,)    
  14:         CATCH e as IdxException
  15:             ConOut( ProcName() + " " + Str(ProcLine()) + " " + e:cErrorText )
  16:         END TRY
  17:     RECOVER
  18:         ConOut( ProcName() + " " + Str(ProcLine()) + " " + oError:Description )
  19:     END SEQUENCE 
  20:     ErrorBlock( bErrorBlock )    
  21:  
  22: Return( NIL )
Eis a questão!


[]s
иαldσ dj

4 comentários:

  1. Respostas
    1. Boa Pergunta! Quando? Eis a questão!

      Excluir
    2. Quando? Quando? Quando?

      Excluir
  2. A resposta é: quando precisar.

    ResponderExcluir