我正在使用Java的Future类来执行任务,但是isDone方法会在任务完成时返回true。任务的完成可能是由于正常终止、异常或取消——在所有这些情况下,该方法都将返回true。有没有办法知道它是否因为异常而结束或者是否成功地完成了?
当您调用Future.get()方法时,可能会出现以下4种情况: 您将获得结果值 如果计算被取消(例如调用Future.cancel(true)),则会收到CancellationException 如果计算抛出异常,则会收到ExecutionException 如果在等待时当前线程被中断(例如executor.shutdownNow()被调用),则会收到InterruptedException