Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Ausnahmen
Ausnahmen mit try
abfangen
Wenn in einem Raku-Programm etwas schiefgeht — eine fehlende Datei,
ein ausdrückliches die —, wird eine Ausnahme
geworfen. Eine unbehandelte Ausnahme hält das Programm standardmäßig an.
Der try-Block erlaubt es Ihnen, Code auszuführen, der
fehlschlagen könnte, ohne abzustürzen.
Sie hüllen den riskanten Code in einen try-Block. Wird
darin eine Ausnahme geworfen, endet der Block dort, das Programm läuft
aber weiter:
my $result = try {
die 'Boom!';
};
say "Still works";Das die wird vom try gefangen, das Programm
stürzt also nicht ab — es geht direkt zur nächsten Anweisung über und
gibt aus:
Still worksWenn der Block auf diese Weise fehlschlägt, ergibt er einen
undefinierten Wert, $result ist also undefiniert:
say $result.defined; # FalseDie gefangene Ausnahme wird in der besonderen Variablen
$! abgelegt. Dort können Sie ihre Meldung lesen:
say $!.message; # Boom!try macht aus einem fatalen Fehler also etwas, das Ihr
Programm untersuchen und worauf es reagieren kann. Läuft der Block ohne
Ausnahme, enthält $result seinen Wert, und $!
ist undefiniert.
Ebenfalls in diesem Abschnitt
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Abschnitts.
Übungen
Dieser Abschnitt enthält 3 Übungen. Sehen Sie sich alle Themen dieses Abschnitts an, bevor Sie mit den Übungen beginnen.