Excepciones
Las excepciones permiten reaccionar ante situaciones inesperadas en tiempo de ejecución.
Lanzar excepciones
Sección titulada «Lanzar excepciones»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" }}Capturar excepciones
Sección titulada «Capturar excepciones»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()}")}Bloque finalmente
Sección titulada «Bloque finalmente»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")}Propagación
Sección titulada «Propagación»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.
Buenas prácticas
Sección titulada «Buenas prácticas»- 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).