Another common case - Option/Result
struct DivisionByZero;
fn div(dividend: i32, divisor: i32) -> Result<i32, DivisionByZero> {
if divisor == 0 {
return Err(DivisionByZero)
}
Ok(dividend / divisor)
}
fn main() {
let res: Result<i32, DivisionByZero> = div(2137, 42);
let quotient = res.unwrap();
let quotient = match res {
Ok(x) => x,
Err(err) => panic!("called `Result::unwrap()` on an `Err` value: {:?}", err),
}
}