Curso de Raku / Objetos, entrada/salida y excepciones / Excepciones
El phaser CATCH
El bloque try es cómodo, pero trata el bloque entero
como una sola unidad: o funciona o no. El phaser CATCH te
da un control más fino: te permite manejar una excepción dentro
del bloque donde ocurrió y decidir qué hacer.
CATCH es un phaser, como los que conociste en la sección sobre el flujo de control. Lo
escribes en cualquier punto dentro de un bloque; solo se ejecuta si allí
se lanza una excepción. La excepción está disponible como el tema
$_:
{
die 'Boom!';
CATCH {
default {
say 'Caught: ' ~ .message;
}
}
}
say 'after';El programa imprime:
Caught: Boom!
afterEl bloque default dentro de CATCH maneja
cualquier excepción. Una vez que se ha ejecutado, la excepción se
considera manejada, así que el programa no se detiene: la ejecución
sigue después del bloque que lo contiene, y por eso se imprime
after.
Sin el CATCH, el die habría terminado el
programa antes de que se pudiera alcanzar after.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Ejercicios
Esta sección contiene 3 ejercicios. Mira todos los temas de esta sección antes de empezar los ejercicios.
Navegación del curso
← Quiz — try | Maneje y continúe
→