Курс по Raku / Обекти, вход-изход и изключения / Изключения
Прихващане на изключения с
try
Когато нещо се обърка в програма на Raku — липсващ файл, изричен
die, — се хвърля изключение. По подразбиране
необработеното изключение спира програмата. Блокът try ви
позволява да изпълните код, който може да се провали, без програмата да
се срине.
Обвивате рискования код в блок try. Ако вътре в него
бъде хвърлено изключение, блокът спира дотам, но програмата
продължава:
my $result = try {
die 'Boom!';
};
say "Still works";die е прихванат от try, така че програмата
не се срива — тя продължава направо със следващия оператор и
отпечатва:
Still worksКогато блокът се провали така, той се изчислява до недефинирана
стойност, така че $result е недефинирана:
say $result.defined; # FalseПрихванатото изключение се съхранява в специалната променлива
$!. Можете да прочетете съобщението му оттам:
say $!.message; # Boom!Така try превръща фаталната грешка в нещо, което
програмата ви може да разгледа и на което може да реагира. Ако блокът се
изпълни без изключение, $result съдържа стойността му, а
$! е недефинирана.
Още в този раздел
Практика
Направете 1 тест върху съдържанието на този раздел.
Упражнения
Този раздел съдържа 3 упражнения. Разгледайте всички теми в раздела, преди да се захванете с практиката.