java - Spring重试未处理异常
问题描述
我有一个自定义异常 CalledMyException
正在由MyExceptionHandler.class
一切都很好,但是我需要在一个函数上实现Spring Retry,但是当我这样做时,该类中的异常停止处理,这是一个简单的示例:
我的自定义异常
public class MyException extends RuntimeException {
private String code;
public MyException(String code) {
super(code);
this.code = code;
}
}
异常处理程序
@RestControllerAdvice
public class MyExceptionHandler extends RuntimeException{
@ExceptionHandler(RuntimeException.class)
public Object handleError(RuntimeException ex) throws IOException {
if(ex instanceof MyException){
System.out.println("Handled")
}
}
}
重试功能
@Retryable(exclude = MyException.class, include = TimeoutException.class, maxAttemptsExpression = "4",
backoff = @Backoff(delayExpression = "100"))
public void retryFunction() {
System.out.println("do something");
throw new MyException("333");
}
我尝试使用exclude
让它忽略异常,但它仍然抛出并且不处理它。
知道如何让它再次工作。
解决方案
推荐阅读
- ios - 为什么单击单元格时我的 UICollectionView 会向上滚动?
- java - Windows 事件查看器 - Kerberos 登录后立即注销
- c# - 具有来自托管数据访问的多个数组和标量的 Oracle 存储过程
- typescript - Webpack 4 加载库 Sourcemap
- django - Django查询多对多关系
- c# - 传入字典的模型项是“List”类型的,但是这个字典需要一个“PagedList.IPagedList”类型的模型项1
- python - Makefile 中的 & 分隔命令
- android - Android - 不同设备类型的分辨率大小
- php - 无法打开流:HTTP 请求失败!HTTP/1.0 500 内部服务器错误
- html - Chrome 无法正确显示 HTML 块