Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj / Molaj misfunkcioj / Exercises / Trovita aŭ ne trovita
Solvo: Trovita aŭ ne trovita
Jen ebla solvo de la tasko.
Kodo
sub lookup($key) {
fail 'no such key' if $key ne 'a';
return 100;
}
my $r = lookup('z');
if $r.defined {
say $r;
}
else {
say 'not found';
say "reason: {$r.exception.message}";
}🦋 Vi povas trovi la fontkodon en la dosiero lookup.raku.
Eligo
not found
reason: no such keyKomentoj
lookup('z')vokasfail, do ĝi redonas nedifinitanFailure.Ĉar la rezulto estas nedifinita, la programo presas
not foundanstataŭ provi uzi la malsukcesintan valoron.Failureankoraŭ portas la escepton, kiu priskribas, kio misiris.$r.exceptionprenas ĝin — kio ankaŭ markas la misfunkcion kiel traktitan, do ĝi ne eksplodos poste — kaj.messagelegas la tekston transdonitan alfail,no such key.