@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.immediateCheckedFuture(V)
.
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.get() that will translate
InterruptedException , CancellationException and
ExecutionException into application-specific exceptions. |
V |
checkedGet(long timeout,
TimeUnit unit)
Exception checking version of
Future.get(long, TimeUnit) that will
translate InterruptedException , CancellationException and
ExecutionException into application-specific exceptions. |
addListener
V checkedGet() throws X extends Exception
Future.get()
that will translate
InterruptedException
, CancellationException
and
ExecutionException
into application-specific exceptions.V checkedGet(long timeout, TimeUnit unit) 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
Copyright © 2010-2013. All Rights Reserved.