Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi / Izņēmumu objekti / Exercises / Nosauciet kļūdu
Risinājums: Nosauciet kļūdu
Šeit ir iespējams risinājums uzdevumam.
Kods
sub risky {
die 'sub failed';
}
{
risky();
CATCH {
default {
say .^name;
say .message;
}
}
}🦋 Atrodiet programmu failā name-the-error.raku.
Izvade
X::AdHoc
sub failedKomentāri
dienotiekriskyiekšienē, taču izņēmums ceļo augšup pie izsaucēja. To apstrādāCATCHblokā, kas izsaucarisky, un tieši tā kļūdu apstrāde parasti arī darbojas: neveiksmei un tās apstrādātājam nav jābūt vienā rutīnā.Vienkāršs
diear virkni rada izņēmumuX::AdHoc, par ko ziņo.^name, bet.messageatgriež tekstu, kas padotsdie.