Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Исключения / Перехват исключений с помощью
try
Тест — try
Что выведет следующая программа?
my $r = try {
die 'Boom!';
say 'inside';
};
say 'outside';| 1 | outside |
| 0 | inside |
| 0 | сначала inside, потом outside |
| 0 | Boom! |
| 0 | ошибка |
Здесь происходит две вещи. Во-первых, die немедленно
прерывает остаток блока try, поэтому до строки
say 'inside' дело не доходит — изнутри блока ничего не
печатается. Во-вторых, поскольку try перехватывает
исключение, сама программа не останавливается: выполнение продолжается
за блоком, и say 'outside' отрабатывает как обычно. Значит,
печатается единственная строка — outside. ($r
был бы не определён, а сообщение Boom! дожидалось бы в
$!, если бы вы туда заглянули.)
Навигация по курсу
← Решение:
Попытка или значение по умолчанию | Фазер CATCH →