Class Throwables

java.lang.Object
com.google.api.client.util.Throwables

public final class Throwables extends Object
Static utility methods pertaining to instances of Throwable.

NOTE: proxy for the Guava implementation of Throwables.

Since:
1.14
  • Constructor Details

    • Throwables

      private Throwables()
  • Method Details

    • propagate

      public static RuntimeException propagate(Throwable throwable)
      Propagates throwable as-is if it is an instance of RuntimeException or Error, or else as a last resort, wraps it in a RuntimeException then propagates.

      This method always throws an exception. The RuntimeException return type is only for client code to make Java type system happy in case a return value is required by the enclosing method. Example usage:

       T doSomething() {
       try {
       return someMethodThatCouldThrowAnything();
       } catch (IKnowWhatToDoWithThisException e) {
       return handle(e);
       } catch (Throwable t) {
       throw Throwables.propagate(t);
       }
       }
       
      Parameters:
      throwable - the Throwable to propagate
      Returns:
      nothing will ever be returned; this return type is only for your convenience, as illustrated in the example above
    • propagateIfPossible

      public static void propagateIfPossible(Throwable throwable)
      Propagates throwable exactly as-is, if and only if it is an instance of RuntimeException or Error. Example usage:
       try {
       someMethodThatCouldThrowAnything();
       } catch (IKnowWhatToDoWithThisException e) {
       handle(e);
       } catch (Throwable t) {
       Throwables.propagateIfPossible(t);
       throw new RuntimeException("unexpected", t);
       }
       
      Parameters:
      throwable - throwable (may be null)
    • propagateIfPossible

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