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)