@RestControllerAdvice全局异常处理

1.校验错误拦截处理 @ExceptionHandler(MethodArgumentNotValidException.class)

/**
     *  校验错误拦截处理
     *
     * @param exception 错误信息集合
     * @return 错误信息
     */
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public Response validationBodyException(MethodArgumentNotValidException exception){
          
   

        BindingResult result = exception.getBindingResult();
        /**
         *可解开
         **/
        String errorMessage = "参数错误";
          if (result.hasErrors()) {
          
   
              List<ObjectError> errors = result.getAllErrors();
              FieldError fieldError = (FieldError) errors.get(0);
              errorMessage = "字段:"+fieldError.getField()+",原因:"+fieldError.getDefaultMessage();

          }
        SystemError.INVALID_PARAMETER.setErrorMessage(errorMessage);
        return Response.error(SystemError.INVALID_PARAMETER);

    }

2.参数类型转换错误@ExceptionHandler(HttpMessageConversionException.class)

/**
     * 参数类型转换错误
     *
     * @param exception 错误
     * @return 错误信息
     */
    @ExceptionHandler(HttpMessageConversionException.class)
    public Response parameterTypeException(HttpMessageConversionException exception){
          
   
        SystemError.BEAN_CONVERSION_TYPE_ERROR.setErrorMessage("类型转换异常:"+exception.getCause().getLocalizedMessage());

        return Response.error(SystemError.BEAN_CONVERSION_TYPE_ERROR);
    }
经验分享 程序员 微信小程序 职场和发展