Cursus Raku / Obiecta, introitus et exitus, et exceptiones / Exceptiones / Defectus molles / Exercises / Inventum an non inventum
Solutio: Inventum an non inventum
Ecce solutio possibilis huius exercitationis.
Codex
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}";
}🦋 Inveni codicem fontem in archivo lookup.raku.
Exitus
not found
reason: no such keyCommentarii
lookup('z')failvocat, itaqueFailureindefinitum reddit.Quia effectus indefinitus est, programma
not foundimprimit potius quam valore defecto uti conetur.Failuretamen exceptionem fert quae describit quid male ceciderit.$r.exceptioneam recuperat — quod etiam defectum ut tractatum notat, ita ut postea non displodat — et.messagetextum adfailtraditum legit,no such key.