Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ausnahmen / Weiche Fehler / Exercises / Nachschlagen oder nicht gefunden
Lösung: Nachschlagen oder nicht gefunden
Hier ist eine mögliche Lösung der Aufgabe.
Code
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}";
}🦋 Du findest den Quellcode in der Datei lookup.raku.
Ausgabe
not found
reason: no such keyKommentare
lookup('z')ruftfailauf und liefert daher ein undefiniertesFailure.Weil das Ergebnis undefiniert ist, gibt das Programm
not foundaus, statt den fehlgeschlagenen Wert zu verwenden.Ein
Failureträgt weiterhin die Ausnahme mit sich, die beschreibt, was schiefging.$r.exceptionholt sie hervor — was den Fehlschlag zugleich als behandelt markiert, sodass er später nicht doch noch explodiert — und.messageliest den anfailübergebenen Text,no such key.