Java Catch块变量中的异常类

时间:2017-02-15 03:58:54

标签: java performance

我有一个要求,我正在编写一个重试逻辑,并且我需要catch exception取决于将在参数中传递的函数,因此可以在java中确定是否捕获到的异常匹配传递参数的exception

基本上是:

retryfunc(func,Exception... retryableexceptions,int retries){

    try {
        func.apply();
    }catch(...){}//How to validate if exception is of retryable type ?
}

1 个答案:

答案 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;
                }
          }
    }
}