@Beta public interface CheckedFuture<V,X extends Exception extends ListenableFuture> <V>
CheckedFuture is a
ListenableFuture that includes versions of the
get methods that can throw a checked exception. This makes it easier to create a future that executes logic which can throw an exception.
A common implementation is Futures.
Implementations of this interface must adapt the exceptions thrown by Future#get(): CancellationException, ExecutionException and InterruptedException into the type specified by the X type parameter.
This interface also extends the ListenableFuture interface to allow listeners to be added. This allows the future to be used as a normal Future or as an asynchronous callback mechanism as needed. This allows multiple callbacks to be registered for a particular task, and the future will guarantee execution of all listeners when the task completes.
For a simpler alternative to CheckedFuture, consider accessing Future values with Futures.get().
| Modifier and Type | Method and Description |
|---|---|
V |
checkedGet()
Exception checking version of
Future that will translate
InterruptedException,
CancellationException and
ExecutionException into application-specific exceptions.
|
V |
checkedGet(long timeout, TimeUnit
Exception checking version of
Future that will translate
InterruptedException,
CancellationException and
ExecutionException into application-specific exceptions.
|
addListenerV checkedGet() throws X extends Exception
Future.get() that will translate
InterruptedException,
CancellationException and
ExecutionException into application-specific exceptions.
V checkedGet(long timeout, TimeUnitunit) throws TimeoutException , X extends Exception
Future.get(long, TimeUnit) that will translate
InterruptedException,
CancellationException and
ExecutionException into application-specific exceptions. On timeout this method throws a normal
TimeoutException.
TimeoutException - if retrieving the result timed out.
X - on interruption, cancellation or execution exceptions.
X extends Exception