Курс по Raku / Обекти, вход-изход и изключения / Изключения / Прихващане на изключения с try

Тест — try

Какво отпечатва следната програма?

my $r = try {
    die 'Boom!';
    say 'inside';
};

say 'outside';
1outside
0inside
0inside, после outside
0Boom!
0грешка

Тук се случват две неща. Първо, die незабавно прекъсва остатъка от блока try, така че редът say 'inside' изобщо не се достига — отвътре в блока не се отпечатва нищо. Второ, понеже try прихваща изключението, самата програма не спира: изпълнението продължава след блока и say 'outside' се изпълнява нормално. Затова единственият отпечатан ред е outside. ($r би била недефинирана, а съобщението Boom! би чакало в $!, ако погледнете там.)

Навигация в курса

Решение: Опит или стойност по подразбиране   |   Фазерът CATCH