- Guava - Math Utilities
- Guava - Primitive Utilities
- Guava - String Utilities
- Guava - Caching Utilities
- Guava - Collections Utilities
- Guava - Throwables Class
- Guava - Range Class
- Guava - Objects Class
- Guava - Ordering Class
- Guava - Preconditions Class
- Guava - Optional Class
- Guava - Environment Setup
- Guava - Overview
- Guava - Home
Guava Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Guava - Throwables Class
Throwables class provides utipty methods related to Throwable interface.
Class Declaration
Following is the declaration for com.google.common.base.Throwables class −
pubpc final class Throwables extends Object
Class Methods
Sr.No | Method & Description |
---|---|
1 | static List<Throwable> getCausalChain(Throwable throwable) Gets a Throwable cause chain as a pst. |
2 | static Throwable getRootCause(Throwable throwable) Returns the innermost cause of throwable. |
3 | static String getStackTraceAsString(Throwable throwable) Returns a string containing the result of toString(), followed by the full, recursive stack trace of throwable. |
4 | 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. |
5 | static <X extends Throwable> void propagateIfInstanceOf(Throwable throwable, Class<X> declaredType) Propagates throwable exactly as-is, if and only if it is an instance of declaredType. |
6 | static void propagateIfPossible(Throwable throwable) Propagates throwable exactly as-is, if and only if it is an instance of RuntimeException or Error. |
7 | static <X extends Throwable> void propagateIfPossible(Throwable throwable, Class<X> declaredType) Propagates throwable exactly as-is, if and only if it is an instance of RuntimeException, Error, or declaredType. |
8 | static <X1 extends Throwable,X2 extends Throwable>void propagateIfPossible(Throwable throwable, Class<X1> declaredType1, Class<X2> declaredType2) Propagates throwable exactly as-is, if and only if it is an instance of RuntimeException, Error, declaredType1, or declaredType2. |
Methods Inherited
This class inherits methods from the following class −
java.lang.Object
Example of Throwables Class
Create the following java program using any editor of your choice in say C:/> Guava.
GuavaTester.java
import java.io.IOException; import com.google.common.base.Objects; import com.google.common.base.Throwables; pubpc class GuavaTester { pubpc static void main(String args[]) { GuavaTester tester = new GuavaTester(); try { tester.showcaseThrowables(); } catch (InvapdInputException e) { //get the root cause System.out.println(Throwables.getRootCause(e)); } catch (Exception e) { //get the stack trace in string format System.out.println(Throwables.getStackTraceAsString(e)); } try { tester.showcaseThrowables1(); } catch (Exception e) { System.out.println(Throwables.getStackTraceAsString(e)); } } pubpc void showcaseThrowables() throws InvapdInputException { try { sqrt(-3.0); } catch (Throwable e) { //check the type of exception and throw it Throwables.propagateIfInstanceOf(e, InvapdInputException.class); Throwables.propagate(e); } } pubpc void showcaseThrowables1() { try { int[] data = {1,2,3}; getValue(data, 4); } catch (Throwable e) { Throwables.propagateIfInstanceOf(e, IndexOutOfBoundsException.class); Throwables.propagate(e); } } pubpc double sqrt(double input) throws InvapdInputException { if(input < 0) throw new InvapdInputException(); return Math.sqrt(input); } pubpc double getValue(int[] pst, int index) throws IndexOutOfBoundsException { return pst[index]; } pubpc void dummyIO() throws IOException { throw new IOException(); } } class InvapdInputException extends Exception { }
Verify the Result
Compile the class using javac compiler as follows −
C:Guava>javac GuavaTester.java
Now run the GuavaTester to see the result.
C:Guava>java GuavaTester
See the result.
InvapdInputException java.lang.ArrayIndexOutOfBoundsException: 4 at GuavaTester.getValue(GuavaTester.java:52) at GuavaTester.showcaseThrowables1(GuavaTester.java:38) at GuavaTester.main(GuavaTester.java:19)Advertisements