Heim  >  Artikel  >  Java  >  Java-Klassenbibliothek-Guava-Throwables-Klasse

Java-Klassenbibliothek-Guava-Throwables-Klasse

黄舟
黄舟Original
2017-01-19 13:25:391639Durchsuche

Manchmal, wenn wir eine Ausnahme abfangen, übergeben wir die Ausnahme an den nächsten Try/Catch-Block. Guava bietet eine Dienstprogrammklasse zur Ausnahmebehandlung, die einfach mehrere Ausnahmen abfangen und erneut auslösen kann.

[code]import java.io.IOException;
import org.junit.Test;
import com.google.common.base.Throwables;

public class ThrowablesTest {

    @Test
    public void testThrowables(){
        try {
            throw new Exception();
        } catch (Throwable t) {
            String ss = Throwables.getStackTraceAsString(t);
            System.out.println("ss:"+ss);
            Throwables.propagate(t);
        }
    }

    @Test
    public void call() throws IOException {
        try {
            throw new IOException();
        } catch (Throwable t) {
            Throwables.propagateIfInstanceOf(t, IOException.class);
            throw Throwables.propagate(t);
        }
    }    
}

Geprüfte Ausnahmen in ungeprüfte Ausnahmen umwandeln, zum Beispiel:

[code]import java.io.InputStream;
import java.net.URL;
import org.junit.Test;
import com.google.common.base.Throwables;

public class ThrowablesTest {

    @Test
    public void testCheckException(){
        try {  
            URL url = new URL("http://ociweb.com");  
            final InputStream in = url.openStream();  
            // read from the input stream  
            in.close();  
        } catch (Throwable t) {  
            throw Throwables.propagate(t);  
        }  
    }
}

Gängige Methoden zum Übergeben von Ausnahmen:

1. RuntimeException propagieren (Throwable): throwable ist Als RuntimeException verpackt, verwenden Sie diese Methode, um die Ausnahmezustellung sicherzustellen, und werfen Sie eine RuntimeException

aus. 2.void propagateIfInstanceOf(Throwable, Class) löst X aus: Nur wenn es sich um eine Instanz von X handelt, übergeben Sie throwable

 3.void propagateIfPossible(Throwable): Genau dann, wenn es sich um eine RuntimeException und einen Fehler handelt, übergeben Sie throwable

 4.void propagateIfPossible(Throwable, Class) throws X: Genau dann, wenn es eine RuntimeException und einen Fehler ist eine RuntimeException und einen Fehler, oder wenn es sich um eine Instanz von X handelt, übergeben Sie throwable.

[code]import java.io.IOException;
import org.junit.Test;
import com.google.common.base.Throwables;

public class ThrowablesTest {    
    @Test
    public void testThrowables(){
        try {
            throw new Exception();
        } catch (Throwable t) {
            String ss = Throwables.getStackTraceAsString(t);
            System.out.println("ss:"+ss);
            Throwables.propagate(t);
        }
    }

    @Test
    public void call() throws IOException {
        try {
            throw new IOException();
        } catch (Throwable t) {
            Throwables.propagateIfInstanceOf(t, IOException.class);
            throw Throwables.propagate(t);
        }
    }

    public Void testPropagateIfPossible() throws Exception {
          try {
              throw new Exception();
          } catch (Throwable t) {
            Throwables.propagateIfPossible(t, Exception.class);
            Throwables.propagate(t);
          }

          return null;
    }
}

Guavas Ausnahmekettenbehandlungsmethode:

1. Throwable getRootCause(Throwable)

2. List getCausalChain(Throwable)

3. String getStackTraceAsString(Throwable)

Das Obige ist der Inhalt der Klasse Java-Class Library-Guava-Throwables. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn