Курс Raku / Об’єкти,
введення-виведення та винятки / Винятки / Фазер
CATCH / Вправи /
Переживіть цикл
Розв’язання: Переживіть цикл
Ось один із можливих варіантів розв’язання задачі.
Код
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усе одно виводиться.