@CanIgnoreReturnValue
  @VisibleForTesting
  static <V, X extends Exception> V getChecked(
      GetCheckedTypeValidator validator, Future<V> future, Class<X> exceptionClass) throws X {
    validator.validateClass(exceptionClass);
    try {
      return future.get();
    } catch (InterruptedException e) {
      currentThread().interrupt();
      throw newWithCause(exceptionClass, e);
    } catch (ExecutionException e) {
      wrapAndThrowExceptionOrError(e.getCause(), exceptionClass);
      throw new AssertionError();
    }
  }
@CanIgnoreReturnValue
  @VisibleForTesting
  static <V, X extends Exception> V getChecked(
      GetCheckedTypeValidator validator, Future<V> future, Class<X> exceptionClass) throws X {
    validator.validateClass(exceptionClass);
    try {
      return future.get();
    } catch (InterruptedException e) {
      currentThread().interrupt();
      throw newWithCause(exceptionClass, e);
    } catch (ExecutionException e) {
      wrapAndThrowExceptionOrError(e.getCause(), exceptionClass);
      throw new AssertionError();
    }
  }
@ CanIgnoreReturnValue @ VisibleForTesting static < V , X extends Exception > V getChecked ( GetCheckedTypeValidator validator , Future < V > future , Class < X > exceptionClass ) throws X { validator . validateClass ( exceptionClass ) ; try { return future . get ( ) ; } catch ( InterruptedException e ) { currentThread ( ) . interrupt ( ) ; throw newWithCause ( exceptionClass , e ) ; } catch ( ExecutionException e ) { wrapAndThrowExceptionOrError ( e . getCause ( ) , exceptionClass ) ; throw new AssertionError ( ) ; } }
Implementation of {@link Futures#getChecked(Future, Class)}.
Implementation of {