【工具类】增加错误码工具类 1.可根据code查询msg 2.可打印所有错误码及其说明

This commit is contained in:
zhaoshuo 2024-10-25 16:13:32 +08:00
parent 17a3e1fd86
commit 2c907dd5c5
4 changed files with 204 additions and 0 deletions

View File

@ -26,6 +26,11 @@ public enum UnexpectedErrorCode implements ErrorCode {
*/
PAY_ORDER_ID_ERROR(20002, "付款单id发生了异常请联系技术人员排查"),
/**
* 错误码错误
*/
UNKNOWN_ERROR_CODE(20004, "错误码竟然没有找到,请联系技术人员排查"),
;
private final int code;

View File

@ -0,0 +1,97 @@
package net.lab1024.sa.base.common.util;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.sa.base.common.code.ErrorCode;
import net.lab1024.sa.base.common.code.SystemErrorCode;
import net.lab1024.sa.base.common.code.UnexpectedErrorCode;
import net.lab1024.sa.base.common.code.UserErrorCode;
/**
* 错误码工具类
*
* @author zhaoshuo
* @version 1.0
* @since 2024/10/25
*/
@Slf4j
public class SmartErrorCodeUtils {
/**
* 默认的 ErrorCode 枚举类数组
*
* @author zhaoshuo
* @since 2024/10/25
**/
private static final Class<? extends ErrorCode>[] DEFAULT_ERROR_CODE_ENUMS = new Class[]{
UserErrorCode.class,
SystemErrorCode.class,
UnexpectedErrorCode.class
};
/**
* 根据指定的错误码查找使用默认的 errorCodeEnums
*
* @param code
* @return net.lab1024.sa.base.common.code.ErrorCode
* @author zhaoshuo
* @since 2024/10/25
**/
public static ErrorCode findErrorCodeByCode(int code) {
return findErrorCodeByCode(code, DEFAULT_ERROR_CODE_ENUMS);
}
/**
* 根据指定的错误码查找使用传入的 errorCodeEnums
*
* @param code
* @param errorCodeEnums
* @return net.lab1024.sa.base.common.code.ErrorCode
* @author zhaoshuo
* @since 2024/10/25
**/
@SafeVarargs
public static ErrorCode findErrorCodeByCode(int code, Class<? extends ErrorCode>... errorCodeEnums) {
for (Class<? extends ErrorCode> errorCodeEnum : errorCodeEnums) {
for (ErrorCode errorCode : errorCodeEnum.getEnumConstants()) {
if (errorCode.getCode() == code) {
return errorCode;
}
}
}
// 未找到对应的错误码
return UnexpectedErrorCode.UNKNOWN_ERROR_CODE;
}
/**
* 打印所有默认的 errorCodeEnums 中的错误码
*
* @return void
* @author zhaoshuo
* @since 2024/10/25
**/
public static void printAllErrorCodes() {
printAllErrorCodes(DEFAULT_ERROR_CODE_ENUMS);
}
/**
* 打印指定的 errorCodeEnums 中的错误码
*
* @param errorCodeEnums
* @return void
* @author zhaoshuo
* @since 2024/10/25
**/
@SafeVarargs
public static void printAllErrorCodes(Class<? extends ErrorCode>... errorCodeEnums) {
log.info("All Error Codes:");
for (Class<? extends ErrorCode> errorCodeEnum : errorCodeEnums) {
log.info("Error Codes in {}:", errorCodeEnum.getSimpleName());
for (ErrorCode errorCode : errorCodeEnum.getEnumConstants()) {
log.info("Code: {}, Message: {}", errorCode.getCode(), errorCode.getMsg());
}
// 空行分隔每个枚举类的输出
log.info("");
}
}
}

View File

@ -26,6 +26,11 @@ public enum UnexpectedErrorCode implements ErrorCode {
*/
PAY_ORDER_ID_ERROR(20002, "付款单id发生了异常请联系技术人员排查"),
/**
* 错误码错误
*/
UNKNOWN_ERROR_CODE(20004, "错误码竟然没有找到,请联系技术人员排查"),
;
private final int code;

View File

@ -0,0 +1,97 @@
package net.lab1024.sa.base.common.util;
import lombok.extern.slf4j.Slf4j;
import net.lab1024.sa.base.common.code.ErrorCode;
import net.lab1024.sa.base.common.code.SystemErrorCode;
import net.lab1024.sa.base.common.code.UnexpectedErrorCode;
import net.lab1024.sa.base.common.code.UserErrorCode;
/**
* 错误码工具类
*
* @author zhaoshuo
* @version 1.0
* @since 2024/10/25
*/
@Slf4j
public class SmartErrorCodeUtils {
/**
* 默认的 ErrorCode 枚举类数组
*
* @author zhaoshuo
* @since 2024/10/25
**/
private static final Class<? extends ErrorCode>[] DEFAULT_ERROR_CODE_ENUMS = new Class[]{
UserErrorCode.class,
SystemErrorCode.class,
UnexpectedErrorCode.class
};
/**
* 根据指定的错误码查找使用默认的 errorCodeEnums
*
* @param code
* @return net.lab1024.sa.base.common.code.ErrorCode
* @author zhaoshuo
* @since 2024/10/25
**/
public static ErrorCode findErrorCodeByCode(int code) {
return findErrorCodeByCode(code, DEFAULT_ERROR_CODE_ENUMS);
}
/**
* 根据指定的错误码查找使用传入的 errorCodeEnums
*
* @param code
* @param errorCodeEnums
* @return net.lab1024.sa.base.common.code.ErrorCode
* @author zhaoshuo
* @since 2024/10/25
**/
@SafeVarargs
public static ErrorCode findErrorCodeByCode(int code, Class<? extends ErrorCode>... errorCodeEnums) {
for (Class<? extends ErrorCode> errorCodeEnum : errorCodeEnums) {
for (ErrorCode errorCode : errorCodeEnum.getEnumConstants()) {
if (errorCode.getCode() == code) {
return errorCode;
}
}
}
// 未找到对应的错误码
return UnexpectedErrorCode.UNKNOWN_ERROR_CODE;
}
/**
* 打印所有默认的 errorCodeEnums 中的错误码
*
* @return void
* @author zhaoshuo
* @since 2024/10/25
**/
public static void printAllErrorCodes() {
printAllErrorCodes(DEFAULT_ERROR_CODE_ENUMS);
}
/**
* 打印指定的 errorCodeEnums 中的错误码
*
* @param errorCodeEnums
* @return void
* @author zhaoshuo
* @since 2024/10/25
**/
@SafeVarargs
public static void printAllErrorCodes(Class<? extends ErrorCode>... errorCodeEnums) {
log.info("All Error Codes:");
for (Class<? extends ErrorCode> errorCodeEnum : errorCodeEnums) {
log.info("Error Codes in {}:", errorCodeEnum.getSimpleName());
for (ErrorCode errorCode : errorCodeEnum.getEnumConstants()) {
log.info("Code: {}, Message: {}", errorCode.getCode(), errorCode.getMsg());
}
// 空行分隔每个枚举类的输出
log.info("");
}
}
}