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 "TOTVS.ch"

/*/{Protheus.doc} User Function zExe506
Aciona tratativa e erro nos códigos (deve-se usar a extensão tlpp)
@type Function
@author Atilio
@since 04/04/2023
@see https://tdn.totvs.com/display/tec/Try...Catch
@obs 

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe506()
    Local aArea := FWGetArea()
    Private oError

    //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?")
            fForcar()
        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 fForcar()
    oError := ErrorClass():New()
    oError:genCode := 19584
    oError:description := "Erro forçado dentro da função fForcar()"
    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