コンテンツにスキップ

例外

Las excepciones permiten reaccionar ante situaciones inesperadas en tiempo de ejecución.

Usa lanzar con un texto descriptivo o un objeto personalizado.

vacio validar_correo(texto correo) {
si (!correo.contiene("@")) {
lanzar "El correo no es válido"
}
}

El bloque intentar encapsula el código a vigilar. capturar recibe una variable de tipo excepcion con información sobre el error y la pila de llamadas.

intentar {
validar_correo("usuario")
} capturar (excepcion error) {
consola.mostrar_error(error.mensaje)
consola.mostrar(t"Pila: {error.llamadas.texto()}")
}

Se ejecuta siempre, ocurra o no una excepción. Es útil para liberar recursos o mostrar mensajes finales.

intentar {
// Código que puede fallar
} capturar (excepcion error) {
consola.mostrar_error(error.mensaje)
} finalmente {
consola.mostrar("Fin del proceso")
}

Si no existe un bloque capturar, la excepción se propaga hasta el punto de entrada y el intérprete muestra un mensaje con la línea y sugerencias.

  • Usa mensajes claros que indiquen cómo corregir el problema.
  • Evita capturar excepciones genéricas sin actuar sobre ellas.
  • Valida argumentos y estados antes de realizar operaciones que puedan fallar (divisiones, acceso a índices, conversiones de tipos).