Corso di Raku / Oggetti,
input/output ed eccezioni / Eccezioni / Il
phaser CATCH / Exercises / Sopravvivete a un
ciclo
Soluzione: Sopravvivete a un ciclo
Ecco una possibile soluzione del compito.
Codice
for 1, 2, 3 -> $n {
if $n == 2 {
die "bad: $n";
}
say "ok: $n";
CATCH {
default {
say "caught: " ~ .message;
}
}
}🦋 Trova il programma nel file survive-a-loop.raku.
Output
ok: 1
caught: bad: 2
ok: 3Commenti
Il phaser
CATCHgestisce un’eccezione sollevata dentro il corpo del ciclo, quindi ildiedella seconda iterazione viene intercettato invece di essere fatale.Una volta gestita l’eccezione, il ciclo prosegue semplicemente con il valore successivo, ed è per questo che
ok: 3viene comunque stampato.