开发者社区> 问答> 正文

在Rust中,如何实现类似Java中通过properties文件管理Error Code的功能?

在Rust中,如何实现类似Java中通过properties文件管理Error Code和Message的功能?

展开
收起
萝卜丝丸子 2024-08-05 21:24:16 34 0
1 条回答
写回答
取消 提交回答
  • 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的变体中。

    2024-08-05 21:59:48
    赞同 4 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载