在编写REST接口时,常常会抛出各种各样的异常,比如系统错误,请求参数不合法,没有权限,token检验未通过等等,这时如果直接抛出异常,不仅对使用者不友好,而且会暴露程序内部信息,这种做法是不可取的,程序可以对异常进行拦截,并进一步封装。同时,对于程序异常,如果有一整套异常码以及对应的异常信息,那么也非常便于排查异常。下面就来介绍一下基于拦截器实现全局异常拦截。
一、定义接口返回包装类BaseResponse
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseResponse<T> implements Serializable {
private int code;
private String message;
private T data;
public BaseResponse(T data) {
this.code = 0;
this.data = data;
this.message = "OK";
}
public BaseResponse(int code, String message) {
this.code = code;
this.message = message;
}
}
二、定义全局异常类BizException
@Data
@EqualsAndH