MST

星途 面试题库

面试题:Rust中如何自定义基础的错误类型

在Rust中,描述一下如何自定义一个简单的错误类型,并在函数中使用该错误类型进行错误处理。请给出具体的代码示例,包括错误类型定义、函数返回该错误类型以及调用函数时对错误的处理。
25.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 自定义错误类型
#[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),
    }
}