HOWTO · Rust

Entspricht der Try-Catch-Anweisung in Rust

Die Rust-Sprache unterstützt keine Ausnahmebehandlung, was bedeutet, dass sie keine try-catch-Anweisung hat. Das Fehlen einer Ausnahmebehandlung in Rust eliminiert die Möglichkeit von Laufzeitfehlern aufgrund von Ausnahmen, die von einer Funktion ausgelöst werden.

Rust ist eine Programmiersprache, die eine sicherere und zuverlässigere Methode zur Entwicklung von Software bietet. Es wurde entwickelt, um allgemeine Fehler zu verhindern, die zu Sicherheitslücken in anderen Sprachen führen.

Die Rust-Sprache unterstützt keine Ausnahmebehandlung, was bedeutet, dass es in Rust keine try-catch-Anweisung gibt.

Das Fehlen einer Ausnahmebehandlung in Rust eliminiert die Möglichkeit von Laufzeitfehlern aufgrund von Ausnahmen, die von einer Funktion ausgelöst werden. Dies liegt daran, dass das Programm an dem Punkt anhält, an dem ein Fehler auftritt, anstatt fortzufahren und möglicherweise andere Probleme in der Codebasis zu verursachen.

In diesem Artikel wird das Rust-Äquivalent zu einer try-catch-Anweisung diskutiert.

Entspricht der try-catch-Anweisung in Rust

In Rust gibt es viele Äquivalente für try-catch-Anweisungen. Aber hier in diesem Artikel werden wir nur einige wenige Äquivalente diskutieren.

Verwenden Sie das ? Betreiber in Rust

In Rust können wir das ? Operator, um die Werte zurückzugeben oder nicht zurückzugeben.

Das ? Operator ist eines der wesentlichen Features von Rust und kann auf viele verschiedene Arten verwendet werden. Es kann prüfen, ob ein Wert vorhanden ist, ob einer Variablen ein Wert zugewiesen wurde oder ob ein Ausdruck als wahr oder falsch ausgewertet wird.

Das ? Der Operator kann auch als Alternative für Rusts try-catch-Anweisung verwendet werden. Das ? Der Operator nimmt einen Abschluss als Parameter.

Die Schließung kann dann aufgerufen werden, ohne sich Gedanken darüber machen zu müssen, was passiert, wenn während der Ausführung ein Fehler auftritt.

Das ? Der Operator fängt den Fehler ab und gibt den Wert des Abschlusses zurück, wenn kein Fehler aufgetreten ist, oder er gibt einen Fehlertyp mit einer Beschreibung des Fehlers zurück, falls es einen gab.

Beispiel:

fn main() {
    let hello_tasks = || -> Result<(), HelloError> {
        hello_task_1()?;
        hello_task_2()?;
        hello_task_3()?;
        Ok(())
    };
    if let Err(_err) = hello_tasks() {
        println!("There's an error in your code, please correct it");
    }
}
enum HelloError {
    HelloTask1Error,
    HelloTask2Error,
    HelloTask3Error,
}
fn hello_task_1() -> Result<(), HelloError> {
    println!("Task No 1");
    Ok(())
}
fn hello_task_2() -> Result<(), HelloError> {
    println!("Task No 2");
    Err(HelloError::HelloTask2Error)
}
fn hello_task_3() -> Result<(), HelloError> {
    println!("task3");
    Ok(())
}

Ausgabe:

Task No 1
Task No 2
There's an error in your code, please correct it

Klicken Sie hier, um die Live-Demonstration des oben genannten Codes zu überprüfen.