Курс по 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 →