Curso de Raku / Objetos, entrada/salida y excepciones / Excepciones / Capturar excepciones con try

Quiz — try

¿Qué imprime el programa siguiente?

my $r = try {
    die 'Boom!';
    say 'inside';
};

say 'outside';
1outside
0inside
0inside y después outside
0Boom!
0un error

Aquí pasan dos cosas. Primero, die aborta de inmediato el resto del bloque try, así que la línea say 'inside' nunca se alcanza: desde dentro del bloque no se imprime nada. Segundo, como try captura la excepción, el programa en sí no se detiene: la ejecución continúa más allá del bloque y say 'outside' se ejecuta con normalidad. Así que la única línea impresa es outside. ($r quedaría sin definir, y el mensaje Boom! estaría esperando en $! si lo miraras.)

Solución: Intento o valor por defecto   |   El phaser CATCH