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()抛出异常
是可调用的原始声明。除非空间非常紧张,否则永远不要浪费空间。