java 异常 过滤器_在过滤器Filter中抛出一个全局异常可以捕获的异常
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
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的java 异常 过滤器_在过滤器Filter中抛出一个全局异常可以捕获的异常的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统查看版本和位数
- 下一篇: jenkins安装(1)