Java Catch 变量中的 block 异常类

标签 java performance

我有一个要求,我正在编写重试逻辑,并且我需要根据将在参数中传递的函数来捕获异常,因此在java中是否可以确定捕获的异常是否与在参数中传递的异常匹配?

基本上:

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

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

最佳答案

我假设您正在传递“可重试异常”的异常列表,并且您想知道由该方法调用生成的异常是否是其中之一。

如果是这种情况,那么您可以执行以下操作:

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

关于Java Catch 变量中的 block 异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42240474/

相关文章:

java - 使用 Firebase 数据库填充 RecyclerView

java - 使用列表参数调用存储过程

c++ - C++11 委托(delegate)的 ctors 是否比调用 init 函数的 C++03 ctors 表现更差?

VS 上的 sql INNER JOIN 表变量。内部连接(选择)开启

php - php 在使用指定键直接访问数组行时的性能是什么

java - 如何不登录 Digester?

java - 获取供应商流的最小值和最大值

JAVA 在查找后使用 RandomAccessFile 非常慢。是什么原因?

performance - 紧缩编程

java - 如何正确配置 Tomcat 线程数和 jmeter 启动周期