Fehlerbehandlung im Rost

Fehlerbehandlung im Rost
Fehlerbehandlung ist praktisch die zweithäufigste Sache für einen Programmierer, außer natürlich, außer Fehler zu machen. Als Entwickler werden Sie auf Szenarien stoßen, in denen Sie einen Fehler erwarten und eine Aktion erstellen müssen, wenn dies passiert.

Obwohl der Compiler die Standardfehlerbehandlung implementiert, ist es gut zu verstehen, wie Fehler für die benutzerdefinierte Logik behandelt werden können. Die Fehlerbehandlung verhindert, dass Ihr Programm unerwünschte Ausgabe zurückgibt oder abnormal beendet wird.

Lassen Sie uns untersuchen, wie Sie Fehler in der Rost -Programmiersprache umgehen können.

Rostfehlertypen

Es gibt zwei Arten von Fehlern im Rost:

  1. Wiederherstellbare Fehler
  2. Nicht wiederherstellbare Fehler

Nicht wiederherstellbare Fehler

Nicht wiederbeschwerde Fehler beziehen sich auf die Arten von Fehlern, die dazu führen, dass ein Programm abnormal stirbt oder abnormal. Ein Beispiel würde in einem Array auf einen außergewöhnlichen Index zugreifen.

Rost benutzt die Panik! Makro, um nicht wiedervertragbare Fehler zu behandeln. Angenommen, der Compiler trifft auf die Panik! Makro in Ihrem Code. Es druckt die angegebenen Nachrichten, reinigt den Stapel und beendet das Programm.

Die Panik! Makro ist sehr nützlich, wenn Sie auf Fehler stoßen, von denen das Programm nicht wiederhergestellt werden kann.

Nehmen Sie unten ein einfaches Programm, das darstellt, wie das Panik -Makro verwendet wird:

fn main ()
Panik!("Ich bin tot!!");

Sobald Sie den vorherigen Code ausgeführt haben, sollten Sie wie unten gezeigt eine Ausgabe erhalten:

Panik anrufen! bewirkt, dass das Programm die angegebene Panikmethode beendet und druckt.

Panik zurückdrehen

Rost ermöglicht es uns, die Fehlerquelle mithilfe der Variablen srost_backtrace -Umgebung zurückzuziehen. Backracing bezieht sich auf eine Liste von Funktionen, die vor dem Fehler aufgerufen wurden.

Nehmen Sie das unten angegebene Beispiel:

fn main ()
Sei VEC = VEC![1,2,3,4,5];
println!("", VEC [5]);

Im vorherigen Beispiel versuchen wir, einen Array-Index außerhalb des Bounds zu lesen. Dies sollte dazu führen, dass das Programm in Panik und Ausgang ausgeht.

Nachfolgend finden Sie ein Ausgangsausgang aus Ausgabe:

Wie Sie aus der Ausgabe erkennen können, teilt uns der Compiler mit.

Wir können dies mit dem folgenden Befehl tun:

$ Rost_backtrace = 1 Frachtlauf

Dies sollte die Backtrace -Ausgabe als:

Dies sollte eine detaillierte Ausgabe des Fehlers in Ihrem Code zurückgeben. Für eine völlig ausführliche Option können Sie die Rust_backtrace = voll verwenden.

Wiederherstellbare Fehler

In der Regel müssen Sie selten nicht wiedervertragbare Fehler behandeln. Um wiederherstellbare Fehler in Rost zu bewältigen, verwenden wir das Ergebnisumum, das zwei Varianten enthält: OK und ERR.

Lassen Sie uns das folgende einfache Programm nehmen, um eine Datei zu öffnen:

Usestd :: fs :: Datei;
fnmain ()
Lassen Sie Datei = Datei :: Open ("Hallo.txt");
println!(":?", Datei);

Der vorherige Code versucht, eine nicht existierende Datei zu öffnen. Ausführen des oben angegebenen Programms sollte als:

Err (OS Code: 2, Art: NotFound, Nachricht: "Das System kann die angegebene Datei nicht finden.")

Wir können jedoch die gewünschte Aktion definieren, wenn die Datei nicht vorhanden ist. Ein Beispiel ist unten gezeigt:

Usestd :: fs :: Datei;
fnmain ()
Lassen Sie Datei = Datei :: Open ("Hallo.txt");
Übereinstimmung Datei
OK (Datei) =>
println!("Datei gefunden: :?", Datei)
,
Err (_error) =>
println!("Datei nicht gefunden")


Hier verwenden wir den Match -Operator, um zu überprüfen, ob die Datei einen Fehler oder OK zurückgegeben hat. Dann ergreifen wir die Aktionen für jeden Fall.

Wir können auch die Erwartungsmethode verwenden, um benutzerdefinierte Fehlerbehandlungsspezifikationen zu erstellen.

Zum Beispiel:

Usestd :: fs :: Datei;
fnmain ()
Lassen Sie Datei = Datei :: Open ("Hallo.txt")
.erwarten ("Fehler beim Lesen der Datei");

Die Erwartungsmethode, die das Panikmakro als Fehler aufruft, wird beim Öffnen der Datei auftreten.

Schließen

Dieses Tutorial behandelte die Grundlagen der Fehlerbehandlung in der Rost -Programmiersprache. Darüber hinaus wurde in diesem Leitfaden die beiden Arten von Fehlern erörtert: wiederherstellbare Fehler und nicht wiederbeschreibbare Fehler. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Informationen finden Sie in den anderen Linux -Hinweisartikeln.