Raku-Kurs / Objekte, Ein- und
Ausgabe und Ausnahmen / Ausnahmen /
Ausnahmen mit try abfangen
Nicht jeder Fehler tritt sofort auf
Eine geworfene Ausnahme hält das Programm standardmäßig sofort an,
und mit try fangen Sie sie. Doch nicht alles, was wie ein
fataler Fehler aussieht, hält Ihr Programm tatsächlich in dem Moment an,
in dem es geschieht. Raku kennt Fehlschläge, die still bleiben — die
ihre Reaktion aufschieben, bis Sie das Ergebnis verwenden, oder die Sie
untersuchen lassen und weiterlaufen. Ein paar davon sind in diesem Teil
schon aufgetaucht, und es lohnt sich, sie an einer Stelle zu
sammeln.
Eine Division durch null. Durch null zu teilen fliegt nicht dort auf, wo es geschrieben steht. Der schlechte Wert wird erzeugt und still gehalten; geworfen wird erst, wenn Sie ihn verwenden — etwa indem Sie ihn ausgeben oder umwandeln:
my $x = 1 / 0; # no error here
say 'still running';
say $x; # only now does it throwDieses aufgeschobene Verhalten und die Failure-Objekte
dahinter sind das Thema von Weiche
Fehlschläge.
Ein fehlschlagendes externes Programm. Ein von
run oder shell geliefertes Proc,
das nicht erfolgreich beendet wurde, wirft nicht, wenn es entsteht. Es
wirft nur, wenn Sie es unbehandelt verwerfen; speichern Sie es
und lesen Sie .exitcode (oder prüfen Sie es als
Wahrheitswert), bleibt der Fehlschlag ein schlichter Wert, auf den Sie
reagieren können. Das haben Sie in Das Proc-Objekt
gesehen.
Der rote Faden: Ein Fehlschlag kann aufgeschoben werden —
verwandelt in einen Wert, den Sie prüfen, wenn Sie bereit sind, statt in
einen sofortigen Absturz. try und der
CATCH-Phaser kümmern sich um Fehler, die sofort geworfen
werden; diese Mechanismen um jene, die es nicht tun.
Kursnavigation
← Ausnahmen mit try abfangen
| Fangen Sie den
Fehler ab →
💪 Oder springen Sie direkt zu
den Übungen dieses Abschnitts.