谷粒商城-品牌管理-统一异常处理

Posted 最小的帆也能远航

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谷粒商城-品牌管理-统一异常处理相关的知识,希望对你有一定的参考价值。

统一异常处理类 

对于项目中出现的异常,我们通常采用ControllerAdvice的方式进行统一处理,简化代码。

1)、编写异常处理类,使用@ControllerAdvice。

2)、使用@ExceptionHandler标注方法可以处理的异常。

package com.xxh.product.exception;

/**
 * 集中处理所有异常
 * @author xxh
 */
@Slf4j
//@ResponseBody
//@ControllerAdvice(basePackages = "com.zsy.product.controller")
@RestControllerAdvice(basePackages = "com.zsy.product.controller")
public class MallExceptionControllerAdvice 

    @ExceptionHandler(value= MethodArgumentNotValidException.class)
    public R handleValidException(MethodArgumentNotValidException e)
        log.error("数据校验出现问题,异常类型:",e.getMessage(),e.getClass());
        BindingResult bindingResult = e.getBindingResult();

        Map<String,String> errorMap = new HashMap<>();
        bindingResult.getFieldErrors().forEach((fieldError)->
            errorMap.put(fieldError.getField(),fieldError.getDefaultMessage());
        );
        return R.error(BizCodeEnume.VAILD_EXCEPTION.getCode(),BizCodeEnume.VAILD_EXCEPTION.getMsg()).put("data",errorMap);
    

    @ExceptionHandler(value = Throwable.class)
    public R handleException(Throwable throwable)

        log.error("错误:",throwable);
        return R.error(BizCodeEnume.UNKNOW_EXCEPTION.getCode(),BizCodeEnume.UNKNOW_EXCEPTION.getMsg());
    

 异常代码枚举

package com.xxh.common.exception;

/***
 * 错误码和错误信息定义类
 * 1. 错误码定义规则为5为数字
 * 2. 前两位表示业务场景,最后三位表示错误码。例如:100001。10:通用 001:系统未知异常
 * 3. 维护错误码后需要维护错误描述,将他们定义为枚举形式
 * 错误码列表:
 *  10: 通用
 *      001:参数格式校验
 *  11: 商品
 *  12: 订单
 *  13: 购物车
 *  14: 物流
 * @author xxh
 */
public enum BizCodeEnum 
    /**
     * 系统未知异常
     */
    UNKNOWN_EXCEPTION(10000, "系统未知异常"),
    /**
     * 参数校验错误
     */
    VALID_EXCEPTION(10001, "参数格式校验失败");
    private final int code;
    private final String msg;
    BizCodeEnum(int code, String msg) 
        this.code = code;
        this.msg = msg;
    
    public int getCode() 
        return code;
    
    public String getMsg() 
        return msg;
    

以上是关于谷粒商城-品牌管理-统一异常处理的主要内容,如果未能解决你的问题,请参考以下文章

谷粒商城_06_JSR303校验+Elasticsearch

谷粒学院项目总结

谷粒学院项目总结

白嫖版-谷粒商城java分布式基础高级高可用集群架构2020

Day413.SpringCache -谷粒商城

Day413.SpringCache -谷粒商城