使用java';时,如何知道任务是如何完成的;未来的阶级
我使用java的Future类来执行任务,但是如果任务完成,方法isDone将返回true。完成可能是由于正常终止、异常或取消——在所有这些情况下,此方法将返回true使用java';时,如何知道任务是如何完成的;未来的阶级,java,runnable,future,Java,Runnable,Future,我使用java的Future类来执行任务,但是如果任务完成,方法isDone将返回true。完成可能是由于正常终止、异常或取消——在所有这些情况下,此方法将返回true 有没有办法知道它是因为异常还是因为成功完成而结束的?您可以简单地尝试检索值-然后get方法抛出异常或返回值。调用Future.get()方法时,有4种可能的结果: 得到结果值 您将获得CancellationException-如果计算被取消(例如,调用Future.cancel(true)) 得到ExecutionExcep
有没有办法知道它是因为异常还是因为成功完成而结束的?您可以简单地尝试检索值-然后
get
方法抛出异常或返回值。调用Future.get()方法时,有4种可能的结果:
- 得到结果值
- 您将获得CancellationException-如果计算被取消(例如,调用Future.cancel(true))
- 得到ExecutionException-如果计算引发异常
- 如果当前线程在等待时被中断(例如,调用executor.shutdownNow()),则会得到InterruptedException