Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ausnahmen / Weiche Fehler / Exercises / Weicher Kehrwert
Lösung: Weicher Kehrwert
Hier ist eine mögliche Lösung der Aufgabe.
Code
sub reciprocal($n) {
fail 'no reciprocal of zero' if $n == 0;
return 1 / $n;
}
say reciprocal(4);
say reciprocal(0) // 'undefined';🦋 Du findest den Quellcode in der Datei soft-divide.raku.
Ausgabe
0.25
undefinedKommentare
reciprocal(4)liefert ganz normal1 / 4, also0.25.reciprocal(0)ruftfailauf und liefert daher einFailure, das undefiniert ist. Der Operator//liefert seine rechte Seite, sobald die linke undefiniert ist, wir erhalten also den Ersatzwertundefined.//zu verwenden gilt als Behandeln des Fehlschlags: Es prüft auf Definiertheit, ohne den Wert zu verwenden, dasFailurebleibt also weich und wird nie als echte Ausnahme geworfen.