主页 > 游戏开发  > 

枚举类型表示不同的HTTP状态码和相应的错误消息

枚举类型表示不同的HTTP状态码和相应的错误消息

java web业务中经常用常量来表示不同的 HTTP 响应状态,比如

public enum AppHttpCodeEnum { // 成功段0 SUCCESS(200,"操作成功"), // 登录段1~50 NEED_LOGIN(1,"需要登录后操作"), LOGIN_PASSWORD_ERROR(2,"密码错误"), // TOKEN50~100 TOKEN_INVALID(50,"无效的TOKEN"), TOKEN_EXPIRE(51,"TOKEN已过期"), TOKEN_REQUIRE(52,"TOKEN是必须的"), // SIGN验签 100~120 SIGN_INVALID(100,"无效的SIGN"), SIG_TIMEOUT(101,"SIGN已过期"), // 参数错误 500~1000 PARAM_REQUIRE(500,"缺少参数"), PARAM_INVALID(501,"无效参数"), PARAM_IMAGE_FORMAT_ERROR(502,"图片格式有误"), SERVER_ERROR(503,"服务器内部错误"), // 数据错误 1000~2000 DATA_EXIST(1000,"数据已经存在"), AP_USER_DATA_NOT_EXIST(1001,"ApUser数据不存在"), DATA_NOT_EXIST(1002,"数据不存在"), // 数据错误 3000~3500 NO_OPERATOR_AUTH(3000,"无权限操作"), NEED_ADMIND(3001,"需要管理员权限"); int code; String errorMessage; AppHttpCodeEnum(int code, String errorMessage){ this.code = code; this.errorMessage = errorMessage; } public int getCode() { return code; } public String getErrorMessage() { return errorMessage; } }

这种枚举的使用方式允许你在代码中使用这些常量来表示不同的 HTTP 响应状态,而不需要硬编码状态码和错误消息。这提高了代码的可读性和可维护性,并降低了错误的风险,因为你可以使用这些常量而不是手动输入状态码和消息。例如,你可以使用 AppHttpCodeEnum.SUCCESS.getCode() 来获取成功状态码,使用 AppHttpCodeEnum.SUCCESS.getErrorMessage() 来获取成功消息。并且无需要,实列化,直接写常量就会在加载服务的时候实列化,这个枚举类型 AppHttpCodeEnum 中定义的枚举常量是可以直接使用的,不需要创建新的枚举对象,就像使用静态变量一样

一般配合响应类来进行使用

public class ResponseResult<T> implements Serializable { private String host; private Integer code; private String errorMessage; private T data; public ResponseResult() { this.code = 200; } public ResponseResult(Integer code, T data) { this.code = code; this.data = data; } public ResponseResult(Integer code, String msg, T data) { this.code = code; this.errorMessage = msg; this.data = data; } public ResponseResult(Integer code, String msg) { this.code = code; this.errorMessage = msg; } public static ResponseResult errorResult(int code, String msg) { ResponseResult result = new ResponseResult(); return result.error(code, msg); } public static ResponseResult okResult(int code, String msg) { ResponseResult result = new ResponseResult(); return result.ok(code, null, msg); } public static ResponseResult okResult(Object data) { ResponseResult result = setAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS, AppHttpCodeEnum.SUCCESS.getErrorMessage()); if(data!=null) { result.setData(data); } return result; } public static ResponseResult errorResult(AppHttpCodeEnum enums){ return setAppHttpCodeEnum(enums,enums.getErrorMessage()); } public static ResponseResult errorResult(AppHttpCodeEnum enums, String errorMessage){ return setAppHttpCodeEnum(enums,errorMessage); } public static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums){ return okResult(enums.getCode(),enums.getErrorMessage()); } private static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums, String errorMessage){ return okResult(enums.getCode(),errorMessage); } public ResponseResult<?> error(Integer code, String msg) { this.code = code; this.errorMessage = msg; return this; } public ResponseResult<?> ok(Integer code, T data) { this.code = code; this.data = data; return this; } public ResponseResult<?> ok(Integer code, T data, String msg) { this.code = code; this.data = data; this.errorMessage = msg; return this; } public ResponseResult<?> ok(T data) { this.data = data; return this; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getErrorMessage() { return errorMessage; } public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } public T getData() { return data; } public void setData(T data) { this.data = data; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } }
标签:

枚举类型表示不同的HTTP状态码和相应的错误消息由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“枚举类型表示不同的HTTP状态码和相应的错误消息