Heim > Java > javaLernprogramm > Hauptteil

Java-Klassenbibliothek-Guava-Throwables-Klasse

黄舟
Freigeben: 2017-01-19 13:25:39
Original
1610 Leute haben es durchsucht

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);
        }
    }    
}
Nach dem Login kopieren

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);  
        }  
    }
}
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

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)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!