当前位置: 首页 > news >正文

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

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

public enum AppHttpCodeEnum {// 成功段0SUCCESS(200,"操作成功"),// 登录段1~50NEED_LOGIN(1,"需要登录后操作"),LOGIN_PASSWORD_ERROR(2,"密码错误"),// TOKEN50~100TOKEN_INVALID(50,"无效的TOKEN"),TOKEN_EXPIRE(51,"TOKEN已过期"),TOKEN_REQUIRE(52,"TOKEN是必须的"),// SIGN验签 100~120SIGN_INVALID(100,"无效的SIGN"),SIG_TIMEOUT(101,"SIGN已过期"),// 参数错误 500~1000PARAM_REQUIRE(500,"缺少参数"),PARAM_INVALID(501,"无效参数"),PARAM_IMAGE_FORMAT_ERROR(502,"图片格式有误"),SERVER_ERROR(503,"服务器内部错误"),// 数据错误 1000~2000DATA_EXIST(1000,"数据已经存在"),AP_USER_DATA_NOT_EXIST(1001,"ApUser数据不存在"),DATA_NOT_EXIST(1002,"数据不存在"),// 数据错误 3000~3500NO_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://www.lryc.cn/news/212014.html

相关文章:

  • SAP 使用cl_gui_timer自动刷新屏幕的用法详解 <转载>
  • golang中的Interface接口 类型断言、接口赋值、空接口的使用、接口嵌套
  • 使用设计模式省去大量的if-elsef分支
  • Tomcat安装与配置文件解读
  • 计算机网络重点概念整理-第一章 计算机网络概述【期末复习|考研复习】
  • Day 11 python学习笔记
  • HarmonyOS鸿蒙原生应用开发设计- 图标库
  • 微软bing大声朗读文档或网页卡顿老是中断,用离线的huihui就很流畅但没那么自然
  • Java VMTranslator Part I
  • ES6带来那些js新特性?
  • js数组深拷贝汇总
  • 错误 LNK1112 模块计算机类型“x64”与目标计算机类型“X86”冲突
  • java八股文(基础篇)
  • window系统修改rabbitmq 默认端口
  • 七人拼团模式:颠覆你的购物观念,499元产品让你赚翻天!
  • 【机器学习合集】模型设计之卷积核设计 ->(个人学习记录笔记)
  • JS实现用户二次确认后再提交表单
  • 1992-2021年全国各省经过矫正的夜间灯光数据(GNLD、VIIRS)
  • JMeter的使用——傻瓜式学习【中】
  • MyBaties存储和查询json格式的数据(实体存储查询版本)
  • 动态规划14:一和零
  • C#WPF嵌入字体实例
  • Linux——Linux权限
  • android中gradle的kotlin编译配置选项
  • 【知识串联】概率论中的值和量(随机变量/数字特征/参数估计)【考研向】【按概率论学习章节总结】(最大似然估计量和最大似然估计值的区别)
  • NOIP2023模拟6联测27 点餐
  • AMEYA360:类比半导体重磅发布车规级智能高边驱动HD7xxxQ系列
  • 【HarmonyOS】鸿蒙操作系统架构
  • JSON数据
  • 金融领域:怎么保持电力系统连续供应?