// 自定义错误类型
#[derive(Debug)]
struct MyError {
message: String,
}
impl std::fmt::Display for MyError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.message)
}
}
impl std::error::Error for MyError {}
// 定义一个函数,返回自定义错误类型
fn divide(a: i32, b: i32) -> Result<i32, MyError> {
if b == 0 {
Err(MyError {
message: "除数不能为零".to_string(),
})
} else {
Ok(a / b)
}
}
fn main() {
let result = divide(10, 0);
match result {
Ok(result) => println!("结果: {}", result),
Err(error) => eprintln!("错误: {}", error),
}
}