Curso de Raku / Objetos,
entrada/salida y excepciones / Excepciones / El
phaser CATCH / Exercises / Sobreviva a un
bucle
Solución: Sobreviva a un bucle
Aquí tienes una posible solución para la tarea.
Código
for 1, 2, 3 -> $n {
if $n == 2 {
die "bad: $n";
}
say "ok: $n";
CATCH {
default {
say "caught: " ~ .message;
}
}
}🦋 Puedes encontrar el código fuente en el archivo survive-a-loop.raku.
Salida
ok: 1
caught: bad: 2
ok: 3Comentarios
El phaser
CATCHmaneja una excepción lanzada dentro del cuerpo del bucle, así que eldiede la segunda iteración se captura en lugar de ser fatal.Una vez manejada la excepción, el bucle simplemente continúa con el valor siguiente, y por eso
ok: 3se sigue imprimiendo.