1 xmagic-core使用说明
当前版本 1.0.8
JDK版本 JDK17
SpringBoot版本 3.3.7
1.1 使用
xmagic-exception,针对项目异常/错误进行统一规范。包含未知异常、系统异常、数据库异常、API异常、数据异常、数据失败、校验失败、业务失败、业务成功等异常的统一定义,提供通用的异常枚举类。
1.1.1 Maven
xml
<dependency>
<groupId>tech.xmagic</groupId>
<artifactId>xmagic-core</artifactId>
<version>${xmagic-core.version}</version>
</dependency>1.1.2 Gradle
groovy
implementation group: 'tech.xmagic', name: 'xmagic-core', version: '${xmagic-core.version}'1.2 异常类
1.2.1 基础异常
| 编码段 | 类名(异常) | 类名(运行时异常) | 说明 |
|---|---|---|---|
| 自定义 | CustomException | CustomRuntimeException | 自定义异常 |
| 1000 | FailureException | FailureRuntimeException | 失败 |
| 2000 | ValidationException | ValidationRuntimeException | 校验失败 |
| 3000 | DataException | DataRuntimeException | 数据异常 |
| 8000 | ApiException | ApiRuntimeException | 接口调用错误 |
| 8100 | ApiTimeoutException | ApiTimeoutRuntimeException | 接口调用超时 |
| 8200 | MqException | MqRuntimeException | MQ错误 |
| 8300 | MqTimeOutException | MqTimeOutRuntimeException | MQ超时 |
| 8400 | NotifyException | NotifyRuntimeException | 通知错误 |
| 8500 | NotifyTimeOutException | NotifyTimeOutRuntimeException | 通知超时 |
| 9000 | SysException | SysRuntimeException | 系统错误 |
1.2.2 预置异常
| 编码段 | 类名(异常) | 类名(运行时异常) | 说明 |
|---|---|---|---|
| 自定义 | CustomException | CustomRuntimeException | 自定义异常 |
| 8001 | ApiNativeException | ApiNativeRuntimeException | 原生接口调用错误 |
| 8002 | ApiLocalException | ApiLocalRuntimeException | 本地接口调用错误 |
| 8003 | ApiRemoteException | ApiRemoteRuntimeException | 远程接口调用错误 |
| 8004 | ApiRpcException | ApiRpcRuntimeException | RPC接口调用错误 |
| 8005 | - | - | HTTP接口调用错误 |
| 8006 | - | - | FEIGN接口调用错误 |
| 8007 | - | - | FOREST接口调用错误 |
| 8008 | - | - | GRPC接口调用错误 |
| 8009 | - | - | DUBBO接口调用错误 |
| 9001 | SysNotSupportException | SysNotSupportRuntimeException | 系统不支持 |
| 9002 | SysWrapException | SysWrapRuntimeException | 封装错误 |
| 9003 | SysParseException | SysParseRuntimeException | 解析错误 |
| 9004 | SysEnCryptException | SysEnCryptRuntimeException | 加密错误 |
| 9005 | SysDeCryptException | SysDeCryptRuntimeException | 解密错误 |
| 9006 | SysSignException | SysSignRuntimeException | 签名错误 |
| 9007 | SysVerifyException | SysVerifyRuntimeException | 验签错误 |
| 9008 | SysEnCodeException | SysEnCodeRuntimeException | 编码错误 |
| 9009 | SysDeCodeException | SysDeCodeRuntimeException | 解码错误 |
| 9995 | SqlException | SqlRuntimeException | SQL错误 |
| 9996 | DataBaseException | DataBaseRuntimeException | 数据库错误 |
| 9997 | UnKnownException | UnKnownRuntimeException | 未知错误 |
| 9998 | - | RuntimeException | 运行时错误 |
| 9998 | Exception | - | JVM错误 |
在API框架中使用时,可直接抛出对应异常,以上异常会被框架进行统一处理,并返回对应JSON数据
1.3 响应码枚举(RC/ResultEnum)
| 编码 | 名称 | 说明 |
|---|---|---|
| 0 | SUCCESS | 操作成功 |
| 1000 | FAILURE | 操作失败 |
| 2000 | VALIDATION_FAILURE | 验证失败 |
| 3000 | DATA_FAILURE | 数据操作失败 |
| 3001 | DATA_NOT_EXIST | 数据不存在 |
| 3002 | DATA_ADD_FAILURE | 数据插入失败 |
| 3003 | DATA_UPDATE_FAILURE | 数据修改失败 |
| 3004 | DATA_DELETE_FAILURE | 数据删除失败 |
| 3005 | DATA_QUERY_FAILURE | 数据查询失败 |
| 3005 | DATA_QUERY_FAILURE | 数据错误 |
| 8000 | API_EXCEPTION | 接口调用错误 |
| 8001 | API_NATIVE_EXCEPTION | 原生接口调用错误 |
| 8002 | API_LOCAL_EXCEPTION | 本地接口调用错误 |
| 8003 | API_REMOTE_EXCEPTION | 远程接口调用错误 |
| 8004 | API_RPC_EXCEPTION | RPC接口调用错误 |
| 8005 | API_HTTP_EXCEPTION | HTTP接口调用错误 |
| 8006 | API_FEIGN_EXCEPTION | FEIGN接口调用错误 |
| 8007 | API_FOREST_EXCEPTION | FOREST接口调用错误 |
| 8008 | API_GRPC_EXCEPTION | GRPC接口调用错误 |
| 8009 | API_DUBBO_EXCEPTION | DUBBO接口调用错误 |
| 8100 | API_TIMEOUT | 接口调用超时 |
| 8101 | API_NATIVE_TIMEOUT | 原生接口调用超时 |
| 8102 | API_LOCAL_TIMEOUT | 本地接口调用超时 |
| 8103 | API_REMOTE_TIMEOUT | 远程接口调用超时 |
| 8104 | API_RPC_TIMEOUT | RPC接口调用超时 |
| 8105 | API_HTTP_TIMEOUT | HTTP接口调用超时 |
| 8106 | API_FEIGN_TIMEOUT | FEIGN接口调用超时 |
| 8107 | API_FOREST_TIMEOUT | FOREST接口调用超时 |
| 8108 | API_GRPC_TIMEOUT | GRPC接口调用超时 |
| 8109 | API_DUBBO_TIMEOUT | DUBBO接口调用超时 |
| 8200 | MQ_EXCEPTION | MQ错误 |
| 8201 | MQ_ROCKETMQ_EXCEPTION | ROCKETMQ错误 |
| 8202 | MQ_RABBITMQ_EXCEPTION | RABBITMQ错误 |
| 8203 | MQ_KAFKA_EXCEPTION | KAFKA错误 |
| 8300 | MQ_TIMEOUT | MQ超时 |
| 8301 | MQ_ROCKETMQ_TIMEOUT | ROCKETMQ超时 |
| 8302 | MQ_RABBITMQ_TIMEOUT | RABBITMQ超时 |
| 8303 | MQ_KAFKA_TIMEOUT | KAFKA超时 |
| 8400 | NOTIFY_EXCEPTION | 通知错误 |
| 8500 | NOTIFY_TIMEOUT | 通知超时 |
| 9000 | SYS_EXCEPTION | 系统错误 |
| 9001 | SYS_NOT_SUPPORT | 系统不支持 |
| 9002 | SYS_WRAP_EXCEPTION | 封装错误 |
| 9003 | SYS_PARSE_EXCEPTION | 解析错误 |
| 9004 | SYS_ENCRYPT_EXCEPTION | 加密错误 |
| 9005 | SYS_DECRYPT_EXCEPTION | 解密错误 |
| 9006 | SYS_SIGN_EXCEPTION | 签名错误 |
| 9007 | SYS_VERIFY_EXCEPTION | 验签错误 |
| 9008 | SYS_ENCODE_EXCEPTION | 编码错误 |
| 9009 | SYS_DECODE_EXCEPTION | 解码错误 |
| 9100 | SQL_EXCEPTION | SQL错误 |
| 9200 | DATABASE_EXCEPTION | 数据库错误 |
| 9997 | UNKNOWN_EXCEPTION | 未知错误 |
| 9998 | RUNTIME_EXCEPTION | 运行时错误 |
| 9999 | EXCEPTION | JVM错误 |