Курс по Raku / Обекти,
вход-изход и изключения / Изключения / Фазерът CATCH / Exercises / Оцелейте в цикъл
Решение: Оцелейте в цикъл
Ето едно възможно решение на задачата.
Код
for 1, 2, 3 -> $n {
if $n == 2 {
die "bad: $n";
}
say "ok: $n";
CATCH {
default {
say "caught: " ~ .message;
}
}
}🦋 Намерете програмата във файла survive-a-loop.raku.
Изход
ok: 1
caught: bad: 2
ok: 3Коментари
Фазерът
CATCHобработва изключение, хвърлено вътре в тялото на цикъла, така чеdieна втората итерация е прихванат, а не фатален.Щом изключението е обработено, цикълът просто продължава със следващата стойност — затова
ok: 3все пак се отпечатва.