| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.google.common.base.Throwables
public final class Throwables
Static utility methods pertaining to instances of Throwable.
 
See the Guava User Guide entry on Throwables.
| Method Summary | ||
|---|---|---|
| static List<Throwable> | getCausalChain(Throwable throwable)Gets a Throwablecause chain as a list. | |
| static Throwable | getRootCause(Throwable throwable)Returns the innermost cause of throwable. | |
| static String | getStackTraceAsString(Throwable throwable)Returns a string containing the result of toString(), followed by the full, recursive
 stack trace ofthrowable. | |
| static RuntimeException | propagate(Throwable throwable)Propagates throwableas-is if it is an instance ofRuntimeExceptionorError, or else as a last resort, wraps
 it in aRuntimeExceptionthen propagates. | |
| static
 | propagateIfInstanceOf(Throwable throwable,
                                           Class<X> declaredType)Propagates throwableexactly as-is, if and only if it is an
 instance ofdeclaredType. | |
| static void | propagateIfPossible(Throwable throwable)Propagates throwableexactly as-is, if and only if it is an
 instance ofRuntimeExceptionorError. | |
| static
 | propagateIfPossible(Throwable throwable,
                                       Class<X> declaredType)Propagates throwableexactly as-is, if and only if it is an
 instance ofRuntimeException,Error, ordeclaredType. | |
| static
 | propagateIfPossible(Throwable throwable,
                                       Class<X1> declaredType1,
                                       Class<X2> declaredType2)Propagates throwableexactly as-is, if and only if it is an
 instance ofRuntimeException,Error,declaredType1,
 ordeclaredType2. | |
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Method Detail | 
|---|
public static <X extends Throwable> void propagateIfInstanceOf(@Nullable
                                                               Throwable throwable,
                                                               Class<X> declaredType)
                                  throws X extends Throwable
throwable exactly as-is, if and only if it is an
 instance of declaredType.  Example usage:
 
   try {
     someMethodThatCouldThrowAnything();
   } catch (IKnowWhatToDoWithThisException e) {
     handle(e);
   } catch (Throwable t) {
     Throwables.propagateIfInstanceOf(t, IOException.class);
     Throwables.propagateIfInstanceOf(t, SQLException.class);
     throw Throwables.propagate(t);
   }
 
X extends Throwable
public static void propagateIfPossible(@Nullable
                                       Throwable throwable)
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);
   }
 
public static <X extends Throwable> void propagateIfPossible(@Nullable
                                                             Throwable throwable,
                                                             Class<X> declaredType)
                                throws X extends Throwable
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);
   }
 
throwable - the Throwable to possibly propagatedeclaredType - the single checked exception type declared by the
     calling method
X extends Throwable
public static <X1 extends Throwable,X2 extends Throwable> void propagateIfPossible(@Nullable
                                                                                   Throwable throwable,
                                                                                   Class<X1> declaredType1,
                                                                                   Class<X2> declaredType2)
                                throws X1 extends Throwable,
                                       X2 extends Throwable
throwable exactly as-is, if and only if it is an
 instance of RuntimeException, Error, declaredType1,
 or declaredType2.  In the unlikely case that you have three or more
 declared checked exception types, you can handle them all by invoking these
 methods repeatedly. See usage example in propagateIfPossible(Throwable, Class).
throwable - the Throwable to possibly propagatedeclaredType1 - any checked exception type declared by the calling
     methoddeclaredType2 - any other checked exception type declared by the
     calling method
X1 extends Throwablepublic static RuntimeException propagate(Throwable throwable)
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);
     }
   }
 
throwable - the Throwable to propagate
public static Throwable getRootCause(Throwable throwable)
throwable. The first throwable in a
 chain provides context from when the error or exception was initially
 detected. Example usage:
 
   assertEquals("Unable to assign a customer id",
       Throwables.getRootCause(e).getMessage());
 
@Beta public static List<Throwable> getCausalChain(Throwable throwable)
Throwable cause chain as a list.  The first entry in the
 list will be throwable followed by its cause hierarchy.  Note
 that this is a snapshot of the cause chain and will not reflect
 any subsequent changes to the cause chain.
 Here's an example of how it can be used to find specific types of exceptions in the cause chain:
Iterables.filter(Throwables.getCausalChain(e), IOException.class));
throwable - the non-null Throwable to extract causes from
throwablepublic static String getStackTraceAsString(Throwable throwable)
toString(), followed by the full, recursive
 stack trace of throwable. Note that you probably should not be
 parsing the resulting string; if you need programmatic access to the stack
 frames, you can call Throwable.getStackTrace().
| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||