## com.google.common.util.concurrent
Interface CheckedFuture<V,X extends Exception>

All Superinterfaces:
  Future<V>, ListenableFuture<V>

All Known Implementing Classes:
  AbstractCheckedFuture, ForwardingCheckedFuture, ForwardingCheckedFuture.SimpleForwardingCheckedFuture

    @Beta
    public interface CheckedFuture<V,X extends Exception>

extends ListenableFuture<V>

A `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 `E` 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()`.

Since:
  1.0
Author:
  Sven Mawson

Method Summary
`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.

Methods inherited from interface com.google.common.util.concurrent.ListenableFuture
`addListener`

Methods inherited from interface java.util.concurrent.Future
`cancel, get, get, isCancelled, isDone`

Method Detail

### checkedGet

    V checkedGet()
                 throws X extends Exception

  Exception checking version of `Future.get()` that will translate `InterruptedException`, `CancellationException` and `ExecutionException` into application-specific exceptions.

  Returns:
    the result of executing the future.
  Throws:
    `X` - on interruption, cancellation or execution exceptions.
    `X extends Exception`

### checkedGet

    V checkedGet(long timeout,
                 TimeUnit unit)
                 throws TimeoutException,
                        X extends Exception

  Exception checking version of `Future.get(long, TimeUnit)` that will translate `InterruptedException`, `CancellationException` and `ExecutionException` into application-specific exceptions. On timeout this method throws a normal `TimeoutException`.

  Returns:
    the result of executing the future.
  Throws:
    `TimeoutException` - if retrieving the result timed out.
    `X` - on interruption, cancellation or execution exceptions.
    `X extends Exception`

Copyright © 2010-2012. All Rights Reserved.