我有一个要求,我正在编写一个重试逻辑,并且我需要catch exception
取决于将在参数中传递的函数,因此可以在java
中确定是否捕获到的异常匹配传递参数的exception
?
基本上是:
retryfunc(func,Exception... retryableexceptions,int retries){
try {
func.apply();
}catch(...){}//How to validate if exception is of retryable type ?
}
答案 0 :(得分:0)
我假设你传递了一个例外列表,这些例外是"可重试的例外"并且您想知道由该方法调用生成的异常是否是其中之一。
如果是这种情况,那么您可以执行以下操作:
retryfunc(func, Exception... retryableExceptionList, int retries){
try {
func.apply();
}catch(Exception e){
for (Exception retryableException : retryableExceptionList) {
if (e.getClass().isAssignableFrom(retryableException.getClass())) {
System.out.println("We need to retry buddy..");
break;
}
}
}
}