MST
星途 面试题库

面试题:Rust中如何定义一个简单的自定义错误类型并实现Error trait

在Rust中,要求定义一个名为`MyError`的自定义错误类型,用于表示特定业务逻辑中的错误。这个错误类型需要实现`std::error::Error` trait,并能够提供错误信息的字符串表示。请给出具体的代码实现。
12.1万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
use std::fmt;

#[derive(Debug)]
struct MyError {
    message: String,
}

impl fmt::Display for MyError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{}", self.message)
    }
}

impl std::error::Error for MyError {}

impl MyError {
    fn new(message: &str) -> Self {
        MyError {
            message: message.to_string(),
        }
    }
}