写了个全局异常处理:
/**
* 统一拦截异常
*/
@RestControllerAdvice
public class ProjectExceptionAdvice {
@ExceptionHandler(Exception.class)
public Result doException(Exception ex){
//记录日志
//通知运维
//通知来发
ex.printStackTrace();
return new Result("服务器故障,请稍后再试!");
}
}
前端返回406,并没有拦截:
{
"timestamp": "2022-07-21T07:58:55.724+00:00",
"status": 406,
"error": "Not Acceptable",
"path": "/articles"
}
控制台错误日志:
2022-07-21 15:58:55.709 WARN 7079 --- [nio-8081-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Failure in @ExceptionHandler com.zd.controller.utils.ProjectExceptionAdvice#doException(Exception)
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:315) ~[spring-webmvc-5.3.21.jar:5.3.21]
无法接受的类型,可能是序列化的时候失败了。
统一返回格式处理没有get和set方法
import lombok.Data;
/**
* 返回格式统一处理
*/
@Data
public class Result {
private Boolean status;
private Object data;
private String msg;
public Result() {
}
public Result(Boolean status, Object data) {
this.status = status;
this.data = data;
}