Cursus Raku / Objecten, in- en
uitvoer en excepties / Excepties /
De CATCH-phaser / Exercises / Overleef een lus
Oplossing: Overleef een lus
Hier is een mogelijke oplossing voor de taak.
Code
for 1, 2, 3 -> $n {
if $n == 2 {
die "bad: $n";
}
say "ok: $n";
CATCH {
default {
say "caught: " ~ .message;
}
}
}🦋 Je kunt de broncode vinden in het bestand survive-a-loop.raku.
Uitvoer
ok: 1
caught: bad: 2
ok: 3Opmerkingen
De
CATCH-faser handelt een exceptie af die binnen de body van de lus geworpen wordt, dus dediebij de tweede iteratie wordt gevangen in plaats van fataal te zijn.Zodra de exceptie afgehandeld is, gaat de lus eenvoudigweg verder met de volgende waarde, en daarom wordt
ok: 3toch afgedrukt.