Guave - Throwables Klasse
Die Throwables-Klasse bietet Dienstprogrammmethoden für die Throwable-Schnittstelle.
Klassenerklärung
Es folgt die Erklärung für com.google.common.base.Throwables Klasse -
public final class Throwables
extends Object
Klassenmethoden
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | static List<Throwable> getCausalChain(Throwable throwable) Ruft eine auslösbare Ursachenkette als Liste ab. |
2 | static Throwable getRootCause(Throwable throwable) Gibt die innerste Ursache für Wurf zurück. |
3 | static String getStackTraceAsString(Throwable throwable) Gibt eine Zeichenfolge zurück, die das Ergebnis von toString () enthält, gefolgt von der vollständigen rekursiven Stapelverfolgung von throwable. |
4 | static RuntimeException propagate(Throwable throwable) Propagiert werdbar wie es ist, wenn es sich um eine Instanz von RuntimeException oder Error handelt, oder umschließt es als letzten Ausweg in eine RuntimeException und propagiert sie dann. |
5 | static <X extends Throwable> void propagateIfInstanceOf(Throwable throwable, Class<X> declaredType) Propagiert genau so, wie es ist, genau dann, wenn es sich um eine Instanz von declaryType handelt. |
6 | static void propagateIfPossible(Throwable throwable) Propagiert genau so, wie es ist, genau dann, wenn es sich um eine Instanz von RuntimeException oder Error handelt. |
7 | static <X extends Throwable> void propagateIfPossible(Throwable throwable, Class<X> declaredType) Propagiert genau so, wie es ist, genau dann, wenn es sich um eine Instanz von RuntimeException, Error oder declaryType handelt. |
8 | static <X1 extends Throwable,X2 extends Throwable>void propagateIfPossible(Throwable throwable, Class<X1> declaredType1, Class<X2> declaredType2) Propagiert genau so, wie es ist, genau dann, wenn es sich um eine Instanz von RuntimeException, Error, declaryType1 oder declaryType2 handelt. |
Vererbte Methoden
Diese Klasse erbt Methoden von der folgenden Klasse:
- java.lang.Object
Beispiel einer Throwables-Klasse
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl 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 {
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt -
C:\Guava>javac GuavaTester.java
Führen Sie nun den GuavaTester aus, um das Ergebnis anzuzeigen.
C:\Guava>java GuavaTester
Siehe das Ergebnis.
InvalidInputException
java.lang.ArrayIndexOutOfBoundsException: 4
at GuavaTester.getValue(GuavaTester.java:52)
at GuavaTester.showcaseThrowables1(GuavaTester.java:38)
at GuavaTester.main(GuavaTester.java:19)