/**
* 精简返回给客户端的异常
* 后端数据验证异常
* 未授权异常HttpStatus.SC_UNAUTHORIZED(Filter中token验证失败等设置的未授权异常)
* EmosException(自定义异常)
* 普通异常
*/
@Slf4j //日志模块
@RestControllerAdvice //@RestControllerAdvice都是对Controller进行增强的,可以全局捕获spring mvc抛的异常。
public class ExceptionAdvice {
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class) //拦截所有异常
public String validExceptionHandler(Exception e){
log.error("执行异常",e); //先将异常写入日志
if (e instanceof MethodArgumentNotValidException){ //后端验证失败(validation验证数据合法性)
MethodArgumentNotValidException exception= (MethodArgumentNotValidException) e;
return exception.getBindingResult().getFieldError().getDefaultMessage();//返回异常消息
}
else if (e instanceof UnauthorizedException){ //为授权异常
return "不具备相关权限";
}
else if (e instanceof EmosException){ //自定义异常(运行时异常)
EmosException exception= (EmosException) e;
return exception.getMsg();
}
else {
return "后端执行异常";
}
}
}
简化异常返回消息
于 2022-03-12 17:46:00 首次发布