gpt4 book ai didi

java - java中使用枚举的错误代码表示

转载 作者:行者123 更新时间:2023-11-30 04:19:32 24 4
gpt4 key购买 nike

服务器向我返回了一堆错误代码。基于这些错误代码,我需要为每个错误代码编写一些逻辑。我不想将简单的错误放入我的函数中。表示这些错误代码的最佳方式是什么?我现在使用枚举,

 private enum LoginErrorCode{

EMAIL_OR_PASSWORD_INCORRECT("101"),
EMAIL_INCORRECT("102");

private final String code;

LoginErrorCode(String code){
this.code=code;
}

public String getCode(){
return code;
}
}

但是如果我收到一个我不知道的错误代码,我不知道如何处理。请告诉我。

最佳答案

这是使用枚举的解决方案,我通常使用它来处理错误代码,正如您在场景中所解释的那样:

import java.util.HashMap;
import java.util.Map;

public class EnumSample {

public static enum LoginErrorCode {

EMAIL_OR_PASSWORD_INCORRECT("101"), EMAIL_INCORRECT("102"), UNKNOWN_ERROR_CODE("---");

private static Map<String, LoginErrorCode> codeToEnumMap;

private final String code;

LoginErrorCode(String code) {
this.code = code;
}

public String getCode() {
return code;
}


/**
* Looks up enum based on code. If code was not registered as enum, it returns UNKNOWN_ERROR_CODE
* @param code
* @return
*/
public static LoginErrorCode fromCode(String code) {
// Keep a hashmap of mapping between code and corresponding enum as a cache. We need to initialize it only once
if (codeToEnumMap == null) {
codeToEnumMap = new HashMap<String, EnumSample.LoginErrorCode>();
for (LoginErrorCode aEnum : LoginErrorCode.values()) {
codeToEnumMap.put(aEnum.getCode(), aEnum);
}
}

LoginErrorCode enumForGivenCode = codeToEnumMap.get(code);
if (enumForGivenCode == null) {
enumForGivenCode = UNKNOWN_ERROR_CODE;
}

return enumForGivenCode;
}
}

public static void main(String[] args) {

System.out.println( LoginErrorCode.fromCode("101")); //Prints EMAIL_OR_PASSWORD_INCORRECT
System.out.println( LoginErrorCode.fromCode("102")); //Prints EMAIL_INCORRECT
System.out.println( LoginErrorCode.fromCode("999")); //Prints UNKWNOWN_ERROR_CODE
}
}

关于java - java中使用枚举的错误代码表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17431140/

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