统一异常处理

统一异常处理

  • 1.自定义异常
    代码如下
public class PoqiException extends RuntimeException {
    private Integer errorCode = ResultEnums.ERROR.getCode();
    public PoqiException(ResultEnums resultEnums) {
        super(resultEnums.getMsg());
        this.errorCode = resultEnums.getCode();
    }

    public PoqiException(ResultEnums resultEnums, Throwable throwable) {
        super(resultEnums.getMsg(), throwable);
        this.errorCode = resultEnums.getCode();
    }

    public PoqiException(Integer errorCode, String msg) {
        super(msg);
        this.errorCode = errorCode;
    }

    public PoqiException(String msg) {
        super(msg);
    }

    public PoqiException(Throwable throwable) {
        super(throwable);
    }

    public PoqiException(String msg, Throwable throwable) {
        super(msg, throwable);
    }

    public Integer getErrorCode() {
        return errorCode;
    }
}
  • 2.枚举
@Getter
public enum ResultEnums {
    /**
     * 除20000外,其余都是失败,每个返回码代表具体的失败场景
     */
    SUCCESS(20000, "操作成功"),
    ERROR(40000, "操作失败!"),
    DATA_NOT_FOUND(40001, "查询失败!"),
    PARAMS_NULL(40002, "参数不能为空!"),
    PARAMS_ERROR(40005, "参数不合法!"),
    NO_LOGIN(40006, "用户未登录"),
    LOGIN_PARAM_ERROR(40007, "用户名或密码错误"),
    MENU_EXISTS(40008, "菜单已存在"),
    FILE_TYPE_ERROR(40009, "文件类型不支持"),
    DIR_NOT_FOUND(40010, "文件夹不存在"),
    FILE_TOO_LARGE(40011, "文件过大"),
    AUTH_NOT_FOUNT(40012, "权限不足"),
    CATEGORY_EXISTS(40013, "分类已存在"),
    LOGIN_ERROR(40014, "登录失败"),
    USER_NOT_FOUND(40015, "用户不存在"),
    USER_REAL_EXISTS(40016, "用户已存在");

    private Integer code;
    private String msg;

    ResultEnums(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}
  • 3.统一异常处理
@RestControllerAdvice
@Slf4j
public class PoqiExceptionAdvice {
    /**
     * 统一处理
     * @param exception
     * @return
     */
    @ExceptionHandler(PoqiException.class)
    public Result<?> exceptionHandler(PoqiException exception){
        log.error("统一异常处理",exception);
        return new Result<>(exception.getErrorCode(),exception.getMessage());
    }

    /**
     * 处理权限不足异常
     * @param exception
     * @return
     */
    @ExceptionHandler(AuthorizationException.class)
    public Result<?> authorizationException(AuthorizationException exception){
        log.error("权限不足异常",exception);
        return new Result<>(ResultEnums.AUTH_NOT_FOUNT);
    }
}
  • 4.总结
    至此,自定义异常以及统一异常处理已经完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzahxa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值