Usina BRAdvPL Guia
Entrar
← Todos os tópicos
COMANDOEm revisão

BEGIN SEQUENCE ... END

BEGIN SEQUENCE [BREAK [xValor]] [RECOVER [USING xRecebido]] END SEQUENCE

Desvia um fluxo controlado por Break para Recover.

BEGIN SEQUENCE ... ENDAdvPL
01 · VISÃO GERAL

Visão geral

BEGIN SEQUENCE delimita um trecho que pode transferir controle por Break. RECOVER USING recebe o valor opcional informado ao Break. Isso não captura automaticamente qualquer erro de execução: para transformar erros em Break é necessário tratamento apropriado com ErrorBlock, preservando e restaurando o anterior. O exemplo usa apenas uma interrupção explícita, sem alterar o tratador global nem simular rollback. BEGIN SEQUENCE e BEGIN TRANSACTION têm finalidades distintas. (TOTVS, s.d., ref. 1)

02 · SINTAXE

Sintaxe

BEGIN SEQUENCE
    [BREAK [xValor]]
[RECOVER [USING xRecebido]]
END SEQUENCE

Parâmetros

xValor
QualquerOpcional

Valor opcional entregue ao Recover.

Retorno

Comando sem retorno próprio; Recover pode receber o valor de Break.

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"
User Function EdSeq()
    Local cMotivo := ""
    Begin Sequence
        // Interrupcao intencional, sem erro de execucao.
        Break("Teste controlado")
    Recover Using cMotivo
        ConOut(cMotivo)
    End Sequence
Return Nil
Resultado esperado

Mensagem do Break no Recover; nenhum dado gravado ou desfeito. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Se usar ErrorBlock, restaurá-lo também nos caminhos de saída. Não trocar este padrão por Try/Catch de TLPP sem identificar a linguagem e o suporte.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. BEGIN SEQUENCE ... END. TDN. Consulta em 2026-10-26.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha