code: public static <X extends Throwable> void propagateIfPossible(
        Throwable throwable, Class<X> declaredType) throws X {
      com.google.common.base.Throwables.propagateIfPossible(throwable, declaredType);
    }
docs: Propagates {@code throwable} exactly as-is, if and only if it is an instance of {@link
  RuntimeException}, {@link Error}, or {@code declaredType}. Example usage:
  
  <pre>
  try {
  someMethodThatCouldThrowAnything();
  } catch (IKnowWhatToDoWithThisException e) {
  handle(e);
  } catch (Throwable t) {
  Throwables.propagateIfPossible(t, OtherException.class);
  throw new RuntimeException("unexpected", t);
  }
  </pre>
  
  @param throwable throwable (may be {@code null})
  @param declaredType the single checked exception type declared by the calling method