Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi / Paša veidoti izņēmumi / Exercises / Divi izņēmumu tipi
Risinājums: Divi izņēmumu tipi
Šeit ir iespējams risinājums uzdevumam.
Kods
class TooSmall is Exception {
method message { 'too small' }
}
class TooBig is Exception {
method message { 'too big' }
}
for TooSmall, TooBig -> $type {
{
$type.new.throw;
CATCH {
when TooSmall { say 'small' }
when TooBig { say 'big' }
}
}
}🦋 Atrodiet programmu failā two-exceptions.raku.
Izvade
small
bigKomentāri
Cikls pirmajā piegājienā izmet
TooSmall, bet otrajāTooBig, katru savā blokā ar savuCATCH.Fāzerim
CATCHirwhenzars katram izņēmuma tipam. Katrā piegājienā izpildās tikai tas zars, kas atbilst izmestajam tipam, — tāpēc pirmais piegājiens izdrukāsmall, bet otraisbig. Tā viens apstrādātāju kopums reaģē atšķirīgi uz dažādiem kļūdu veidiem.