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

Коментари

  1. Когато блокът се изпълни без грешка, try просто се изчислява до стойността на блока, така че $ok съдържа 42.

  2. die вътре във втория блок хвърля изключение, така че този блок се изчислява до недефинирана стойност и $bad.defined дава False.

  3. Прихванатото изключение се съхранява в специалната променлива $!, а $!.message връща текста, който му е бил даден — broken.

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

Прихванете грешката   |   Когато нищо не се обърка