Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj / Propraj esceptoj / Exercises / Du esceptotipoj
Solvo: Du esceptotipoj
Jen ebla solvo de la tasko.
Kodo
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' }
}
}
}🦋 Vi povas trovi la fontkodon en la dosiero two-exceptions.raku.
Eligo
small
bigKomentoj
La buklo ĵetas
TooSmallĉe la unua paso kajTooBigĉe la dua, ĉiun ene de sia propra bloko kun sia propraCATCH.La fazero
CATCHhavas branĉonwhenpor ĉiu esceptotipo. Ĉe ĉiu paso, nur la branĉo kongrua kun la ĵetita tipo ruliĝas — do la unua paso presassmallkaj la dua presasbig. Tiel unu sola aro da trakteroj reagas malsame al malsamaj specoj de eraro.