Curso de Raku / Objetos,
entrada/salida y excepciones / Excepciones / El
phaser CATCH / Exercises / Maneje y
continúe
Solución: Maneje y continúe
Aquí tienes una posible solución para la tarea.
Código
for <ok bad ok> -> $item {
{
die 'boom' if $item eq 'bad';
say "processed $item";
CATCH {
default {
say "skipped ($item): {.message}";
}
}
}
}🦋 Puedes encontrar el código fuente en el archivo handle-and-continue.raku.
Salida
processed ok
skipped (bad): boom
processed okComentarios
El phaser
CATCHestá dentro del bloque que trata cada elemento, así que maneja undiesolo para ese elemento. Como la excepción se maneja ahí, nunca escapa hasta detener todo el bucle.Este es el uso típico de
CATCHfrente atry: un fallo en una iteración se resuelve localmente y el bucle pasa al elemento siguiente. El elemento del medio falla, pero los dos elementosokse procesan igualmente.