直接贴代码
| package com.ruben.resolver;
 import com.ruben.utils.AjaxJson;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.FieldError;
 import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 
 import java.util.List;
 import java.util.stream.Collectors;
 
 
 
 
 
 
 
 
 
 
 
 
 @Slf4j
 @RestControllerAdvice
 public class GlobalExceptionResolver {
 
 
 
 
 
 
 @ExceptionHandler(value = MethodArgumentNotValidException.class)
 public AjaxJson parameterValidatorResolver(MethodArgumentNotValidException e) {
 List<FieldError> errors = e.getBindingResult().getFieldErrors();
 return AjaxJson.error(errors.stream().map(FieldError::getDefaultMessage)
 .collect(Collectors.joining(" ")));
 }
 
 
 
 
 
 
 
 @ExceptionHandler(value = Exception.class)
 public AjaxJson otherExceptionResolver(Exception e) {
 log.error("发生了异常,可能是你的代码有BUG,请跑路", e);
 return AjaxJson.error("服务器异常,后端跑路了");
 }
 }
 
 | 
非常简单
在类上加个@RestControllerAdvice注解,在方法加上@ExceptionHandler注解,value给对应的异常类就行
注意如果是@ControllerAdvice注解的话,返回的格式不是json,会被thymeleaf等解析跳转页面