java - Callable 和 Future 返回异常

标签 java exception concurrency future callable

我有以下代码。

Future<Integer> future = Executor.execute(callable);
            Integer i;
            try {
                i = future.get();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return MESSAGE_INT_CODE;
            } catch (ExecutionException e) {
                 // TODO Auto-generated catch block
                 //e.printStackTrace();
            }
            return i;

其中ExecutionException可以包含其他异常,例如ABCException。 我的调用代码正在捕获 ABCException 这是运行时异常,所以如果发生 ExecutionException 我怎么知道这是因为 ABCExceptionExecutionException 由于我的 public call() 方法运行时出现一些异常。并且调用方法可能有一些 ABCException

我应该这样写吗?

 catch (ExecutionException e) {
                     throw new ABCException(e.getMessage());
                     // TODO Auto-generated catch block
                     //e.printStackTrace();
                }

最佳答案

尝试e.getCause()实例ABCException

关于java - Callable 和 Future 返回异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23800114/

相关文章:

java - 如何提取两个有序列表的非交集部分?

c# - 捕获产生内部任务的任务的异常

java - 当程序需要整数时用户输入字符串时如何防止程序终止?

monad 中的多线程

java - 使用Java以多线程模式进行图像处理

java - 自定义 Swarm Connect 排行榜

具有 2 个在 C 和 C++ 中声明和定义的 native 方法的 Java 程序

java - 在 sbt 中添加类路径位置

exception - PHPUnit 模拟异常

java - 如果不会发生争用,读取时是否需要同步