潘志宝
2024-09-12 27e7299964b861c079dbb2826edab00dfd6dc27d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package com.iailab.framework.common.exception.enums;
 
import com.iailab.framework.common.exception.ErrorCode;
 
/**
 * 全局错误码枚举
 * 0-999 系统异常编码保留
 *
 * 一般情况下,使用 HTTP 响应状态码 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
 * 虽然说,HTTP 响应状态码作为业务使用表达能力偏弱,但是使用在系统层面还是非常不错的
 * 比较特殊的是,因为之前一直使用 0 作为成功,就不使用 200 啦。
 *
 * @author iailab
 */
public interface GlobalErrorCodeConstants {
 
    ErrorCode SUCCESS = new ErrorCode(0, "成功");
 
    // ========== 客户端错误段 ==========
 
    ErrorCode BAD_REQUEST = new ErrorCode(400, "请求参数不正确");
    ErrorCode UNAUTHORIZED = new ErrorCode(401, "账号未登录");
    ErrorCode FORBIDDEN = new ErrorCode(403, "没有该操作权限");
    ErrorCode NOT_FOUND = new ErrorCode(404, "请求未找到");
    ErrorCode METHOD_NOT_ALLOWED = new ErrorCode(405, "请求方法不正确");
    ErrorCode DATA_REPETITION = new ErrorCode(406, "数据库存在重复数据");
    ErrorCode LOCKED = new ErrorCode(423, "请求失败,请稍后重试"); // 并发请求,不允许
    ErrorCode TOO_MANY_REQUESTS = new ErrorCode(429, "请求过于频繁,请稍后重试");
 
    // ========== 服务端错误段 ==========
 
    ErrorCode INTERNAL_SERVER_ERROR = new ErrorCode(500, "系统异常");
    ErrorCode NOT_IMPLEMENTED = new ErrorCode(501, "功能未实现/未开启");
    ErrorCode ERROR_CONFIGURATION = new ErrorCode(502, "错误的配置项");
 
    // ========== 自定义错误段 ==========
    ErrorCode REPEATED_REQUESTS = new ErrorCode(900, "重复请求,请稍后重试"); // 重复请求
    ErrorCode DEMO_DENY = new ErrorCode(901, "演示模式,禁止写操作");
 
    ErrorCode UNKNOWN = new ErrorCode(999, "未知错误");
 
}