1、创建自定义异常
public class TokenException extends RuntimeException {
private static final long serialVersionUID = 1L;
private Integer errCode;
private String message;
public TokenException(Integer errCode){
this.errCode = errCode;
this.message = ExceptionEnum.getMessage(errCode);
}
public TokenException(String message){
this.errCode = ExceptionEnum.TOKEN.getCode();
this.message = message;
}
public TokenException(int errCode, String message) {
this.errCode = errCode;
this.message = message;
}
public TokenException(ExceptionEnum exceptionEnum) {
this.errCode = exceptionEnum.getCode();
this.message = exceptionEnum.getMessage();
}
public TokenException(ExceptionEnum exceptionEnum, String message) {
this.errCode = exceptionEnum.getCode();
this.message = message;
}
public int getCode() {
return errCode;
}
public void setCode(int errCode) {
this.errCode = errCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2、在过滤器中注入HandlerExceptionResolver
@Autowired
@Qualifier("handlerExceptionResolver")
private HandlerExceptionResolver resolver;
3.使用
if(StringUtils.isEmpty(redisToken)){
resolver.resolveException(request, response, null, new TokenException(ExceptionEnum.TOKEN));
return;
}
4、全局异常捕获
@Slf4j
@ResponseBody
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler({TokenException.class})
public Map TokenException(TokenException e) {
log.error("捕获业务异常:", e);
Map map = new HashMap(2);
map.put("code",e.getCode());
map.put("msg",e.getMessage());
return map;
}
}
本文地址:https://blog.csdn.net/qq_38377774/article/details/107696206
希望与广大网友互动??
点此进行留言吧!