Tratamiento de errores con BEGIN SEQUENCE y RECOVER
Controla interrupción y recuperación del flujo.
Descripción general
BEGIN SEQUENCE delimita instrucciones; Break desvía a RECOVER y USING recibe expresión enviada. El ejemplo usa Break explícito con marcador ficticio. Redirigir errores requiere tratamiento compatible como ErrorBlock que llama Break; secuencia no captura automáticamente toda falla fatal. Guarde/restaure ErrorBlock anterior y evite RETURN que omita limpieza. Recuperar flujo no revierte transacción ni libera bloqueos/recursos automáticamente; corresponde al propietario. (Fuentes: refs. 1–1.)
Ejemplo comentado
#Include "Protheus.ch"
User Function Ed696()
Local xError
Begin Sequence
// Marcador ficticio demuestra desvío sin provocar error de datos.
Break("ED696")
Recover Using xError
ConOut("Recuperacion: "+cValToChar(xError))
End Sequence
Return NilMuestra Recuperacion: ED696 según flujo propuesto. No demuestra captura fatal ni rollback. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- No silencie fallos devolviendo éxito. Preserve diagnóstico sin secretos y pruebe limpieza ante errores.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.