Tratamento de erros com BEGIN SEQUENCE e RECOVER
Controla interrupção e recuperação do fluxo de execução.
Visão geral
BEGIN SEQUENCE delimita instruções; Break desvia para RECOVER e USING recebe a expressão enviada. O exemplo usa Break explícito com marcador fictício. Para redirecionar erros de execução é necessário um tratamento compatível, como ErrorBlock que executa Break; a sequência não captura automaticamente toda falha fatal. Ao trocar ErrorBlock, guardar e restaurar o anterior, sem RETURN que pule essa limpeza. Recuperar fluxo não reverte transação, libera lock ou fecha recurso automaticamente. Essas responsabilidades precisam ser tratadas no contexto proprietário. (Fontes: refs. 1–1.)
Exemplo comentado
#Include "Protheus.ch"
User Function Ed696()
Local xErro
Begin Sequence
// Marcador ficticio para observar o desvio, sem provocar erro de dados.
Break("ED696")
Recover Using xErro
ConOut("Recuperacao: "+cValToChar(xErro))
End Sequence
Return NilExibe Recuperacao: ED696 no fluxo proposto. Não demonstra captura de erro fatal nem rollback. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
- Não silenciar falhas retornando sucesso. Preservar diagnóstico sem expor segredos e testar limpeza nos caminhos de erro.
- Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.