Курс Raku / Об’єкти, введення-виведення та винятки / Винятки / Об’єкти винятків / Вправи / Назвіть помилку
Розв’язання: Назвіть помилку
Ось один із можливих варіантів розв’язання задачі.
Код
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.
Навігація курсом
← Назвіть помилку | Зіставте тип →