Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ausnahmen / Ausnahmeobjekte / Exercises / Passen Sie den Typ ab
Lösung: Passen Sie den Typ ab
Hier ist eine mögliche Lösung der Aufgabe.
Code
{
my $x = 1 / 0;
say $x;
CATCH {
when X::Numeric::DivideByZero {
say 'cannot divide by zero';
}
}
}🦋 Du findest den Quellcode in der Datei match-the-type.raku.
Ausgabe
cannot divide by zeroKommentare
In Raku fliegt
1 / 0nicht sofort auf; es erzeugt ein trägesFailure. Die Ausnahme wird erst geworfen, wenn wir den Wert verwenden, hier durch den Versuch, ihn mitsayauszugeben.Die geworfene Ausnahme ist vom eingebauten Typ
X::Numeric::DivideByZero, undwhen X::Numeric::DivideByZerotrifft sie genau. Auf einen bestimmten Typ zu prüfen, statt alles mitdefaultzu fangen, erlaubt es, verschiedene Fehler verschieden zu behandeln.