Realizando tratativas com Try … Catch – Maratona AdvPL e TL++ 506

Nesse vídeo demonstraremos a utilização dos comandos Try e Catch, que servem para fazer tratativas e em caso de falhas, demonstrar o que houve.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "tlpp-core.th"

//Declaração da namespace
Namespace custom.terminal.youtube

/*/{Protheus.doc} User Function tryCatch
Aciona tratativa e erro nos códigos
@type Function
@author Atilio
@since 12/03/2024
@see https://tdn.totvs.com/display/tec/Try...Catch
@example custom.terminal.youtube.u_tryCatch()
/*/

User Function tryCatch()
    Local aArea    := FWGetArea() As Array
    Private oError := Nil         As Object

    //Tenta executar os comandos
    TRY

        //Se a pergunta for confirmada, irá forçar passar pelo ErrorClass
        If FWAlertYesNo("Deseja forçar o erro e a saída do Try?", "Continua?")
            forceError()
        EndIf
        
        //Mostra mensagem
        FWAlertSuccess("Sucesso na execução do Try", "Teste Try ... Catch")

    //Caso houve falha, captura e exibe
    CATCH oError
        FWAlertError("Erro gerado: " + oError:Description , "Teste Try ... Catch")
    ENDTRY
  
    FWRestArea(aArea)
Return

Static Function forceError()
    oError := ErrorClass():New()
    oError:genCode := 19584
    oError:description := "Erro forçado dentro da função forceError()"
    THROW oError
Return

Bom pessoal, por hoje é só.

Abraços e até próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação