Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ausnahmen / Eigene Ausnahmen / Exercises / Zwei Ausnahmetypen
Lösung: Zwei Ausnahmetypen
Hier ist eine mögliche Lösung der Aufgabe.
Code
class TooSmall is Exception {
method message { 'too small' }
}
class TooBig is Exception {
method message { 'too big' }
}
for TooSmall, TooBig -> $type {
{
$type.new.throw;
CATCH {
when TooSmall { say 'small' }
when TooBig { say 'big' }
}
}
}🦋 Du findest den Quellcode in der Datei two-exceptions.raku.
Ausgabe
small
bigKommentare
Die Schleife wirft im ersten Durchgang eine
TooSmallund im zweiten eineTooBig, jeweils in einem eigenen Block mit eigenemCATCH.Der
CATCH-Phaser hat einenwhen-Zweig je Ausnahmetyp. In jedem Durchgang läuft nur der Zweig, der auf den geworfenen Typ passt — der erste Durchgang gibt alsosmallaus und der zweitebig. So reagiert ein einziger Satz von Behandlungen unterschiedlich auf verschiedene Arten von Fehlern.