Rust 中如何自定义错误类型?

推荐答案

在 Rust 中,自定义错误类型通常通过实现 std::error::Error trait 来完成。以下是一个简单的示例:

-- -------------------- ---- -------
--- ---------
--- ------------------

----------------
------ ------------- -
    -------- -------
-

---- ------------- -
    -- -------- ----- -- ------------- -
        ------------- - -------- --------------- -
    -
-

---- ------------ --- ------------- -
    -- ---------- -- ---- --------------- -- ----------- -
        --------- ----- -------------
    -
-

---- ----- --- ------------- -
    -- ------------------ -- ---- -
        -------------
    -
-
展开代码

本题详细解读

1. 定义自定义错误类型

首先,我们定义了一个结构体 MyCustomError,它包含一个 details 字段,用于存储错误信息。

2. 实现构造函数

为了方便创建自定义错误,我们实现了一个 new 函数:

3. 实现 fmt::Display trait

为了让错误类型能够被打印出来,我们需要实现 fmt::Display trait:

4. 实现 std::error::Error trait

为了让自定义错误类型能够与 Rust 的错误处理机制兼容,我们需要实现 std::error::Error trait:

5. 使用自定义错误类型

现在,我们可以在代码中使用这个自定义错误类型了:

-- -------------------- ---- -------
-- ------------ -- ---------- -------------- -
    --------------------------------- ---- ---------
-

-- ------ -
    -- --- ------ - ------------ -
        ---------------- ---- ---
    -
-
展开代码

在这个示例中,might_fail 函数返回一个 Result,其中错误类型是我们自定义的 MyCustomError。如果函数返回错误,我们可以在 main 函数中捕获并打印错误信息。

纠错
反馈

纠错反馈