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 works

Wenn der Block auf diese Weise fehlschlägt, ergibt er einen undefinierten Wert, $result ist also undefiniert:

say $result.defined; # False

Die 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.

  1. Fangen Sie den Fehler ab
  2. Wenn nichts schiefgeht
  3. Versuch oder Standardwert

Kursnavigation

Ausnahmen   |   Nicht jeder Fehler tritt sofort auf