Recoverable Errors with Result
Recoverable Errors with Result
Recoverable errors in Rust are modeled through Result<T, E>:
#[derive(Debug)]
enum MathError {
DivisionByZero,
}
fn safe_divide(numerator: f64, denominator: f64) -> Result<f64, MathError> {
if denominator == 0.0 {
Err(MathError::DivisionByZero)
} else {
Ok(numerator / denominator)
}
}
fn main() {
match safe_divide(10.0, 2.0) {
Ok(val) => println!("Quotient: {}", val),
Err(e) => println!("Error: {:?}", e),
}
}