@ControllerAdvice public class BusinessExceptionHandler { private static final Logger logger = LoggerFactory.getLogger(BusinessExceptionHandler.class); @ResponseBody @ExceptionHandler(value = Exception.class) public String processException(Exception e) { String msg = "all exception " + e.getMessage(); logger.error(msg, e); return msg; } @ResponseBody @ExceptionHandler(value = BusinessException.class) public BusinessResponse processException(BusinessException e) { logger.error(e.getMessage(), e); return new BusinessResponse(e.getCode(), e.getMsg()); } /** * 校验错误拦截处理 * @param exception 错误信息集合 * @return 错误信息 */ @ResponseBody @ExceptionHandler(MethodArgumentNotValidException.class) public BusinessResponse validationBodyException(MethodArgumentNotValidException exception){ BindingResult result = exception.getBindingResult(); String message = null; if (result.hasErrors()) { List<ObjectError> errors = result.getAllErrors(); if (errors != null && errors.size()>0){ message = errors.get(0).getDefaultMessage(); } } //默认返回未知终端标识 return new BusinessResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), message); }
}