Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可调用执行期间发生异常_Java_Jakarta Ee_Concurrency_Future - Fatal编程技术网

Java 可调用执行期间发生异常

Java 可调用执行期间发生异常,java,jakarta-ee,concurrency,future,Java,Jakarta Ee,Concurrency,Future,我有以下电话号码: public class Worker implements Callable<Boolean>{ @Override public Boolean call(){ boolean success=true; //do Something return success; } } 公共类工作程序实现可调用{ @凌驾 公共布尔调用(){ 布尔成功=真; //做点什么 回归成功; } } 现在我正在执行它:

我有以下电话号码:

public class Worker implements Callable<Boolean>{

   @Override
   public Boolean call(){
      boolean success=true;

      //do Something
     return success;
   }

}
公共类工作程序实现可调用{
@凌驾
公共布尔调用(){
布尔成功=真;
//做点什么
回归成功;
}
}
现在我正在执行它:

Worker worker - new Worker();
Future<Boolean> submit = executor.submit(worker);
工作者-新工作者();
未来提交=执行人提交(工人);
我将submit存储在hashMap中,以便在代码中的某个地方执行某些操作

如何知道
worker.call()函数中是否发生异常

如果出现某种异常,
submit.isCancelled()
是否会返回true,如果一切正常,则返回false

当您调用时,它将抛出封装在中的异常。

如中所述,
未来
将重新抛出在
.call()
期间发生的异常(尽管封装在
ExecutionException
中),在这种情况下,
isCancelled()
仍将为false。

提交.获取()将抛出ExecutionException,有一个
FutureCallback
接口,它有一个
onFailure(Throwable t)
方法,您应该对此感兴趣


将Google Guava Libraries添加到项目中绝不是浪费空间:-)

但是Future.get会返回布尔值吗?你能发布一些代码吗?它不会返回,它会抛出异常。
V call()抛出异常
是可调用的原始声明。除非空间非常紧张,否则永远不要浪费空间。