Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi / Mīkstās kļūmes / Exercises / Atrasts vai nav atrasts
Risinājums: Atrasts vai nav atrasts
Šeit ir iespējams risinājums uzdevumam.
Kods
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}";
}🦋 Atrodiet programmu failā lookup.raku.
Izvade
not found
reason: no such keyKomentāri
lookup('z')izsaucfail, tāpēc tā atgriež nedefinētuFailure.Tā kā rezultāts ir nedefinēts, programma izdrukā
not found, nevis mēģina neizdevušos vērtību izmantot.Failurejoprojām nes līdzi izņēmumu, kas apraksta, kas noticis greizi.$r.exceptionto izvelk — un tas arī atzīmē neveiksmi kā apstrādātu, tāpēc tā vēlāk neuzsprāgs — un.messagenolasa tekstu, kas padotsfail, proti,no such key.