在Rust中,如何实现类似Java中通过properties文件管理Error Code和Message的功能?
properties文件存储error code和message相比enum和POJO有以下几个优势:一是与Java和IntelliJ IDEA等工具的配合较好,支持i18n(国际化)和集中管理;二是维护成本相对较低,因为properties文件通常比Java代码更容易编辑和更新;三是便于将ErrorMessages.properties文件提交到中心仓库进行Error Code的集中管理。相比之下,Java Enum+POJO对i18n和集中管理的支持较为麻烦,且代码量较大。
use std::fmt;
#[derive(Debug)]
enum ErrorMessages {
AppLogin404 {
email: String,
},
AppLogin405(String),
}
impl fmt::Display for ErrorMessages {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
ErrorMessages::AppLogin404 { email } => write!(f, "User with email {} not found", email),
ErrorMessages::AppLogin405(msg) => write!(f, "Unsupported login method: {}", msg),
}
}
}
注意,这里的错误信息是直接硬编码在Rust代码中的,如果需要从外部文件(如properties文件)加载,可能需要使用额外的库来解析文件内容,并将加载的信息映射到enum的变体中。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。