capypad
0 Tage Serie
rust / intermediate
Snippet

Fehlerfortpflanzung mit dem ?-Operator

Der '?' Operator ist eine prägnante Art, Fehler zu behandeln. Wenn ein Result ein 'Err' ist, kehrt die Funktion vorzeitig mit diesem Fehler zurück; andernfalls wird der 'Ok'-Wert entpackt.

snippet.rs
rust
1
2
3
4
5
6
7
8
9
use std::fs::File;
use std::io::{self, Read};
 
fn read_username() -> Result<String, io::Error> {
let mut f = File::open("hello.txt")?;
let mut s = String::new();
f.read_to_string(&mut s)?;
Ok(s)
}
Erklärung
1
File::open("hello.txt")?
Versucht eine Datei zu öffnen. Bei Fehlern wird der Fehler sofort zurückgegeben.
2
Ok(s)
Hüllt das erfolgreiche Ergebnis in eine Ok-Variante ein.