Курс по Raku / Обекти, вход-изход и изключения / Изключения / Обекти на изключения / Exercises / Назовете грешката
Решение: Назовете грешката
Ето едно възможно решение на задачата.
Код
sub risky {
die 'sub failed';
}
{
risky();
CATCH {
default {
say .^name;
say .message;
}
}
}🦋 Намерете програмата във файла name-the-error.raku.
Изход
X::AdHoc
sub failedКоментари
dieсе случва вътре вrisky, но изключението пътува нагоре към извикващия.CATCHв блока, който е извикалrisky, го обработва — и точно така обикновено работи обработката на грешки: провалът и обработващият го не е нужно да са в една и съща процедура.Обикновен
dieс низ създава изключениеX::AdHoc, което.^nameсъобщава, а.messageвръща текста, подаден наdie.