springBoot全局异常捕获类

/**
 * @ControllerAdvice 声明当前类为一个全局异常处理类
 *  在异常捕获类中可以进行视图跳转和Json响应
 * @RestControllerAdvice 声明当前类为一个全局异常处理类
 *  所有方法的都添加 @ResponseBody
 *  类中所有的方法的返回值都会被以json形式响应
 *
 *
 */
@RestControllerAdvice
public class ExceptionControllerAdvice {

    /**
     * @ExceptionHandler 捕获某个异常 赋值到方法的形参处
     * 方法形参必须为 被捕获异常或者其父类
     * @param e
     * @return
     */
    @ExceptionHandler(BindException.class)
    public R getBindException(BindException e){
//        获取异常信息
        BindingResult result = e.getBindingResult();
        List<FieldError> fieldErrors = result.getFieldErrors();
        Map map = new HashMap();
        for (FieldError fieldError : fieldErrors) {
            map.put(fieldError.getField(),fieldError.getDefaultMessage());
        }

        return R.error(1000,"参数校验异常").put("data",map);
    }

}

测试

 

posted @ 2020-11-02 21:28  奶牛花花  阅读(431)  评论(0编辑  收藏  举报