Курс по Raku / Обекти,
вход-изход и изключения / Изключения / Прихващане на изключения с try / Exercises / Прихванете грешката
Решение: Прихванете грешката
Ето едно възможно решение на задачата.
Код
my $ok = try { 6 * 7 };
say $ok;
my $bad = try { die 'broken' };
say $bad.defined;
say $!.message;🦋 Намерете програмата във файла catch-the-error.raku.
Изход
42
False
brokenКоментари
Когато блокът се изпълни без грешка,
tryпросто се изчислява до стойността на блока, така че$okсъдържа42.dieвътре във втория блок хвърля изключение, така че този блок се изчислява до недефинирана стойност и$bad.definedдаваFalse.Прихванатото изключение се съхранява в специалната променлива
$!, а$!.messageвръща текста, който му е бил даден —broken.