Package com.google.api.client.util
Class Throwables
java.lang.Object
com.google.api.client.util.Throwables
Static utility methods pertaining to instances of
Throwable
.
NOTE: proxy for the Guava implementation of Throwables
.
- Since:
- 1.14
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic RuntimeException
Propagatesthrowable
as-is if it is an instance ofRuntimeException
orError
, or else as a last resort, wraps it in aRuntimeException
then propagates.static void
propagateIfPossible
(Throwable throwable) static <X extends Throwable>
voidpropagateIfPossible
(Throwable throwable, Class<X> declaredType) Propagatesthrowable
exactly as-is, if and only if it is an instance ofRuntimeException
,Error
, ordeclaredType
.
-
Constructor Details
-
Throwables
private Throwables()
-
-
Method Details
-
propagate
Propagatesthrowable
as-is if it is an instance ofRuntimeException
orError
, or else as a last resort, wraps it in aRuntimeException
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
Propagatesthrowable
exactly as-is, if and only if it is an instance ofRuntimeException
orError
. Example usage:try { someMethodThatCouldThrowAnything(); } catch (IKnowWhatToDoWithThisException e) { handle(e); } catch (Throwable t) { Throwables.propagateIfPossible(t); throw new RuntimeException("unexpected", t); }
- Parameters:
throwable
- throwable (may benull
)
-
propagateIfPossible
public static <X extends Throwable> void propagateIfPossible(Throwable throwable, Class<X> declaredType) throws X Propagatesthrowable
exactly as-is, if and only if it is an instance ofRuntimeException
,Error
, ordeclaredType
. 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 benull
)declaredType
- the single checked exception type declared by the calling method- Throws:
X
-