使用bindexception捕获表单校验失败,
/**
* 数据绑定异常处理
*
* @param result 绑定结果
* @return 统一响应对象
*/
@ExceptionHandler(BindException.class)
public OpenApiRespVo<?> bindException(HttpServletRequest request, BindingResult result) {
int code = 400000;
String hint = formatBindingResult(result);
String msg = String.format("拒绝访问。非法参数: %s -> %s", request.getRequestURI(), hint);
LOG.info(msg);
return OpenApiRespVo.fail(code, hint);
}
如果入参是json格式则需要使用MethodArgumentNotValidException
/**
* 处理Json数据绑定异常处理
*
* @param request HTTP请求
* @param ex 异常对象
* @return 统一响应对象
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
public OpenApiRespVo<?> methodArgumentNotValidException(HttpServletRequest request, MethodArgumentNotValidException ex) {
return bindException(request, ex.getBindingResult());
}