gpt4 book ai didi

rust - 重用 `thiserror` 定义中的错误消息

转载 作者:行者123 更新时间:2023-12-02 01:31:17 24 4
gpt4 key购买 nike

我使用thiserror用于我的项目中的错误处理的 crate 。

我声明一个这样的错误

#[derive(Debug, thiserror::Error)]
enum CustomErrors {
#[error("This is custom error one")]
CustomErrorOne,

#[error("This is custom error two")]
CustomErrorTwo
}

我像这样使用这个自定义错误

// cut

match foo() {
Err(errors) -> match errors {
CustomErrors::CustomErrorOne => ..., // I want to get access to "This is custom error one" error message here
CustomErrors::CustomErrorTwo => ..., // ...and here
}
}

//cut

我是否正确理解,由于 thiserror 的原理,这是不可能的?它需要创建一个新的错误消息?

Thiserror deliberately does not appear in your public API. (c) Documentation

最佳答案

来自docs :

A Display impl is generated for your error if you provide #[error("...")] messages on the struct or each variant of your enum...

因此,如果您想从 CustomErrors 中获取该字符串,只需调用 .to_string() 即可。

关于rust - 重用 `thiserror` 定义中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73240062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com