我有以下代码。
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
我怎么知道这是因为 ABCException
?
ExecutionException
由于我的 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/