capypad
0 Tage Serie
rust / beginner
Snippet

Result-Typ für Fehlerweiterleitung

Result<T, E> ist Rusts Art, Operationen zu behandeln, die fehlschlagen können. Im Gegensatz zu Option<T>, das potenziell fehlende Werte repräsentiert, steht Result für Operationen, die mit einem Fehler fehlschlagen können. Die Ok-Variante enthält den Erfolgswert, während Err Fehlerinformationen enthält.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fn divide(a: f64, b: f64) -> Result<f64, String> {
if b == 0.0 {
return Err(String::from("Division by zero"));
}
Ok(a / b)
}
 
fn main() {
match divide(10.0, 2.0) {
Ok(result) => println!("Result: {}", result),
Err(e) => println!("Error: {}", e),
}
let result = divide(5.0, 0.0).unwrap_or(-1.0);
println!("Safe result: {}", result);
}
Erklärung
1
Result<f64, String>
Rückgabetyp, der Erfolg (f64) oder Fehlschlag (String-Fehler) anzeigt
2
return Err(String::from(...));
Gibt einen Fehler zurück, der in die Err-Variante gewrappt ist
3
.unwrap_or(-1.0)
Extrahiert Wert oder gibt Standardwert zurück bei Err