In diesem Tutorial werden Ihnen angezeigt.
Grundnutzung
Die meisten Programmiersprachen implementieren Ausnahmebehandlung mit dem Try -and -Catch -Block. Wie bei allem anderen in Ruby sind die Schlüsselwörter jedoch beschreibender.
Wir können die allgemeine Syntax wie unten gezeigt ausdrücken:
StartWir schließen den Ausnahmebeherrandblock in einer Start- und Endanweisung ein. In diesen Aussagen definieren wir die Erhöhungs- und Rettungsblöcke.
In der Erhöhung definieren wir die Ausnahme, die wir manuell heben oder den Ruby -Dolmetscher generieren lassen können. Standardmäßig ist der Parameter für den Erhöhungsblock RunTimeError
Als nächstes kommt der Rettungsblock. Wie der Name schon sagt, kommt dieser Block zur Rettung, wenn eine Ausnahme auftritt. Es übernimmt die Kontrolle über die Ausführung des Programms.
Ruby wird die Ausnahme vergleichen, die aus dem Erhöhungsblock mit den an den Rettungsblock übergebenen Parametern ausgelöst wird. Wenn die Ausnahme vom gleichen Typ oder einer Superklasse ausgeht, löst sie den Rettungsblock aus.
Beispiel für die Ausnahmehandhabung in Ruby
Wir können ein einfaches Beispiel implementieren, um zu veranschaulichen, wie die Ausnahmehandhabung in Ruby funktioniert:
def er_meIm obigen Beispiel definieren wir eine Funktion mit einem Ausnahmeblock.
Wir stellen manuell eine Ausnahme an, die den Ausführungsfluss des Programms unterbricht und in den Rettungsblock eintritt. Dies führt die Aktionen im Block-in in diesem Fall aus, eine Put-Erklärung und Ausgabe.
Wenn Sie einen Codeblock unmittelbar nach der Erhöhung und vor dem Rettungsblock hinzufügen, werden sie nicht ausgeführt, da der Rettungsblock den Programmfluss sofort behandelt.
Standardmäßig verwendet der Rettungsblock den StandardError -Parameter. Es gibt jedoch andere Arten von Fehlern in Ruby, einschließlich.
Und mehr.
Um einen bestimmten Fehlertyp zu erhöhen und zu behandeln, können wir ihn als Parameter an den Erhöhungsblock übergeben. Hier ist ein Beispiel:
StartIm obigen Beispiel erheben wir einen ZerodivisionError. Wir springen dann in den Rettungsblock, der den spezifischen Ausnahmetyp druckt und die Quelle verfolgt.
Die resultierende Ausgabe ist:
$ Ruby Err-Handling.rbAndere Ausnahmeblöcke
Neben dem Haupthöhungs- und Rettungsblock bietet Ruby uns auch andere Blöcke, die wir implementieren können, um Fehler zu behandeln.
Sie beinhalten:
Block wiederholen
Der Wiederholungsblock wird verwendet, um den Rettungsblock nach der Erhöhung der Ausnahme erneut auszuführen. Hier ist ein Beispiel:
StartWenn wir den obigen Code ausführen, wird die Nachricht im Rettungsblock aus gedruckt. Es wird auf den Wiederholungsblock stoßen, der in den Rettungsblock springt.
Ein häufiger Anwendungsfall von Wiederholungsblöcken ist die Prüfung von Fehlern mit Brute Force. Ein Beispiel wäre es, eine Seite weiterzuladen, wenn die Verbindung heruntergefallen ist, bis der Fehler auflöst.
VORSICHT: Seien Sie vorsichtig, wenn Sie den Wiederholungsblock verwenden, da er eine häufige Quelle für unendliche Schleifen ist.
Block sicherstellen
Wenn Sie in einer anderen Sprache wie Python programmiert haben, sind Sie wahrscheinlich mit dem endgültigen Block vertraut. Der Block in Ruby erbringt ähnlich wie der endgültige Block in anderen Programmiersprachen.
Der Block für die Gewährleistung läuft immer am Ende des Codes. Unabhängig davon, ob die erhöhte Ausnahme korrekt behandelt wurde oder die Programmausführung endet, wird immer ausgeführt oder ausgeführt.
Hier ist ein Beispiel:
StartIn diesem Fall druckt der obige Code eine Ausnahmebegeldung und führt schließlich den Block sicher aus.
ZerodivisionError hat mich dazu gebracht, ⚰️ zu sterbenSonst block
Wenn keine Ausnahme erhöht wird, können wir einen Block implementieren, um eine Aktion mithilfe der sonstigen Anweisung auszuführen.
Zum Beispiel:
StartDer else -Block wird zwischen der Rettung und dem Sicherungsblock platziert. Im obigen Beispiel werden Sie feststellen.
Hier ist ein Beispielausgang:
Vertrauen Mich, Ich lief erfolgreich 😀
& Ich werde immer rennen 🚀Leichte Ausnahmehandling
Die Erhöhungs- und Rettungsblöcke sind eine praktische Möglichkeit, eine Aktion auszuführen, wenn ein Fehler auftritt. Da jedoch Fehlerbehandlungen eine Stapelverfolgung entwickelt, um beim Debuggen zu helfen, kann dies in Ihrem Programm leicht problematisch werden. Hier kommen die Fang- und Wurfblöcke ins Spiel.
Um einen Catch-Throw-Block zu implementieren, beginnen Sie zunächst das Etikett mithilfe des Catch-Keywords. Sobald Ruby auf einen Wurfblock trifft, der auf den Fangblock verweist, stoppt er die Ausführung und springt zum Fangblock springt.
Lassen Sie uns ein Beispiel verwenden, um dieses Konzept zu veranschaulichen. Betrachten Sie die im folgende Code angezeigte chaotische Verschachtelung:
catch (: Kill_me_now) tunWir beginnen mit dem Catch -Keyword und übergeben das Etikett in einem Paar Klammern. Sobald wir den Code ausgeführt haben, werden alle verschachtelten Schleifen ausgeführt und wenn Aussagen, bis er auf die Wurfanweisung auf den Fang bezieht.
Dadurch werden die Ausführungen und geben sofort auf die Ebene der Catch -Anweisung zurück.
Hier ist ein Beispielausgang:
Nach dem Wurf wird nichts laufen!''Abschluss
Dieses Tutorial hat Ihnen gezeigt.