Throw
Tipo: throw · Paquete: Core Activities v1.0.8
Lanza un error a propósito con el mensaje que indiques. Sirve para detener la automatización cuando detectas una situación que no debería continuar — datos inválidos, una condición de negocio que no se cumple, un resultado inesperado. En vez de seguir y fallar más adelante de forma confusa, fallas ahí mismo con un mensaje claro.
Cómo funciona
Sección titulada «Cómo funciona»Al ejecutarse, detiene el flujo con el error indicado. A partir de ahí:
- Si está dentro del
tryde un Try / Catch, salta a esecatch(el error queda capturado). En la variable de error,.Messagees tu mensaje y.Typees elerrorTypeque indicaste (oPlaybookException). - Si no hay Try/Catch que lo contenga, la ejecución termina en estado
failedy el mensaje aparece en los logs. - Si se lanza dentro de un playbook invocado, el error sube a quien lo invocó conservando su tipo: una excepción de negocio sigue siendo de negocio en el playbook padre.
- Si relanza un error capturado —el mismo mensaje (
error.Message) con el mismo tipo (error.Type) o sin tipo, dentro delcatcho más adelante desde variables, como hacen las plantillas incluidas—, el lugar del error sigue siendo donde ocurrió el original: el Designer, el resumen de la ejecución y el monitor de casos de los flujos muestran ese archivo, paso y actividad (por ejemplomain.play › Pasos.play · paso 2), no este Throw. Un error nuevo (otro mensaje u otro tipo) se ubica en este Throw.
Error de negocio y error técnico
Sección titulada «Error de negocio y error técnico»errorType | Se trata como… | Efecto |
|---|---|---|
BusinessRuleException | Error de negocio: los datos no permiten seguir. | Retry y Process Queue no lo reintentan; Zoan Cloud lo reporta como «Error de negocio». |
Vacío (PlaybookException) o cualquier otro texto | Error técnico. | Se reintenta normalmente y se reporta como error técnico. |
La comparación con BusinessRuleException distingue mayúsculas: escríbelo exactamente así (o elígelo de la lista del Designer).
Parámetros requeridos
Sección titulada «Parámetros requeridos»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
message | string | — | El mensaje del error. Texto fijo entre comillas o expresión. Ej: "Total inválido: " + total. Si evalúa a vacío (null), el mensaje es «Error lanzado desde el playbook.». |
Parámetros opcionales
Sección titulada «Parámetros opcionales»| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
errorType | string | "PlaybookException" | El tipo del error, para reconocerlo en el catch con errorVar.Type. En el Designer lo eliges de una lista: Error técnico (vacío), Excepción de negocio (guarda BusinessRuleException) u Otro tipo (escribirlo), por ejemplo "SelectorException". Usa la excepción de negocio para un error de negocio: no se reintenta, llega a Zoan Cloud como «Error de negocio» y, en un flujo, el caso puede seguir por la ruta de error del paso en vez de quedar como incidente. Se le quitan los espacios de los extremos. |
Esta actividad no devuelve ningún valor: siempre termina en error.
Ejemplo
Sección titulada «Ejemplo»Validar un dato y abortar con un mensaje útil si no es válido; el catch distingue el error de negocio de los demás:
Try / Catch errorVariable = error ├─ try: │ If condition = num(fila["Total"]) <= 0 │ └─ then: │ Throw message = "La factura " + str(fila["Numero"]) + " tiene un total inválido" │ errorType = "BusinessRuleException" │ ... registrar la factura ... └─ catch: If condition = error.Type == "BusinessRuleException" ├─ then: │ Log level = warning message = "Factura rechazada: " + error.Message └─ else: Throw message = error.Message errorType = error.Type // técnico: que falleErrores comunes
Sección titulada «Errores comunes»Throw no falla por sí misma: su trabajo es producir el error. Si el mensaje que esperabas no aparece, revisa la expresión de message: el texto fijo va entre comillas y las variables, sin ellas.
Actividades relacionadas
Sección titulada «Actividades relacionadas»- Try / Catch — capturar un error lanzado (propio o de otra actividad).
- Retry — no reintenta los errores de negocio.
- Log — registrar un aviso sin detener la ejecución.
- If — decidir cuándo lanzar el error.