Класс Throwables предоставляет служебные методы, связанные с интерфейсом Throwable.
Декларация класса
Ниже приводится объявление для класса com.google.common.base.Throwables.
public final class Throwables extends Object
Методы класса
Sr.No | Метод и описание |
---|---|
1 |
статический список <Throwable> getCausalChain (Throwable throwable) Получает цепочку причин Throwable в виде списка. |
2 |
статический Throwable getRootCause (Throwable throwable) Возвращает самую внутреннюю причину броска. |
3 |
статическая строка getStackTraceAsString (Throwable throwable) Возвращает строку, содержащую результат toString (), за которой следует полная рекурсивная трассировка стека throwable. |
4 |
статическое распространение RuntimeException (Throwable throwable) Распространяет throwable как есть, если это экземпляр RuntimeException или Error, или же в качестве последнего средства, оборачивает его в RuntimeException, а затем распространяется. |
5 |
static <X extends Throwable> void spreadateIfInstanceOf (Throwable throwable, Class <X> Объявленный тип) Распространяется с возможностью отбрасывания в том виде, в каком оно есть, только в том случае, если он является экземпляром Объявленного типа. |
6 |
static void spreadateIfPossible (Throwable throwable) Распространяется в точности как есть, если и только если это экземпляр RuntimeException или Error. |
7 |
static <X extends Throwable> void пропагатаIfPossible (Throwable throwable, класс <X> Объявленный тип) Распространяется с возможностью отбрасывания в том виде, в каком оно есть, только в том случае, если оно является экземпляром RuntimeException, Error или Объявленный тип. |
8 |
static <X1 extends Throwable, X2 extends Throwable> void spreadateIfPossible (Throwable throwable, класс <X1> DeclaType1, класс <X2> DeclaType2) Распространяется с возможностью отбрасывания в том виде, в каком оно есть, только в том случае, если оно является экземпляром RuntimeException, Error, DeclaType1 или DeclaType2. |
статический список <Throwable> getCausalChain (Throwable throwable)
Получает цепочку причин Throwable в виде списка.
статический Throwable getRootCause (Throwable throwable)
Возвращает самую внутреннюю причину броска.
статическая строка getStackTraceAsString (Throwable throwable)
Возвращает строку, содержащую результат toString (), за которой следует полная рекурсивная трассировка стека throwable.
статическое распространение RuntimeException (Throwable throwable)
Распространяет throwable как есть, если это экземпляр RuntimeException или Error, или же в качестве последнего средства, оборачивает его в RuntimeException, а затем распространяется.
static <X extends Throwable> void spreadateIfInstanceOf (Throwable throwable, Class <X> Объявленный тип)
Распространяется с возможностью отбрасывания в том виде, в каком оно есть, только в том случае, если он является экземпляром Объявленного типа.
static void spreadateIfPossible (Throwable throwable)
Распространяется в точности как есть, если и только если это экземпляр RuntimeException или Error.
static <X extends Throwable> void пропагатаIfPossible (Throwable throwable, класс <X> Объявленный тип)
Распространяется с возможностью отбрасывания в том виде, в каком оно есть, только в том случае, если оно является экземпляром RuntimeException, Error или Объявленный тип.
static <X1 extends Throwable, X2 extends Throwable> void spreadateIfPossible (Throwable throwable, класс <X1> DeclaType1, класс <X2> DeclaType2)
Распространяется с возможностью отбрасывания в том виде, в каком оно есть, только в том случае, если оно является экземпляром RuntimeException, Error, DeclaType1 или DeclaType2.
Унаследованные методы
Этот класс наследует методы из следующего класса —
- java.lang.Object
Пример класса Throwables
Создайте следующую Java-программу, используя любой редактор по вашему выбору, скажем, C: /> Guava.
GuavaTester.java
import java.io.IOException; import com.google.common.base.Objects; import com.google.common.base.Throwables; public class GuavaTester { public static void main(String args[]) { GuavaTester tester = new GuavaTester(); try { tester.showcaseThrowables(); } catch (InvalidInputException 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)); } } public void showcaseThrowables() throws InvalidInputException { try { sqrt(-3.0); } catch (Throwable e) { //check the type of exception and throw it Throwables.propagateIfInstanceOf(e, InvalidInputException.class); Throwables.propagate(e); } } public void showcaseThrowables1() { try { int[] data = {1,2,3}; getValue(data, 4); } catch (Throwable e) { Throwables.propagateIfInstanceOf(e, IndexOutOfBoundsException.class); Throwables.propagate(e); } } public double sqrt(double input) throws InvalidInputException { if(input < 0) throw new InvalidInputException(); return Math.sqrt(input); } public double getValue(int[] list, int index) throws IndexOutOfBoundsException { return list[index]; } public void dummyIO() throws IOException { throw new IOException(); } } class InvalidInputException extends Exception { }
Проверьте результат
Скомпилируйте класс с помощью компилятора javac следующим образом:
C:\Guava>javac GuavaTester.java
Теперь запустите GuavaTester, чтобы увидеть результат.
C:\Guava>java GuavaTester
Смотрите результат.