Tutorials  /  JavaScript

Java Catch Multiple Exceptions, Rethrow Exception - Leitfaden

Ccentron Redaktion · April 2024 ·2 Min. Lesezeit ·JavaScript, Tutorial

In Java 7 wurde der catch-Block verbessert, um mehrere Ausnahmen in einem einzigen catch-Block zu behandeln. Wenn Sie mehrere Ausnahmen fangen und diese ähnlichen Code haben, dann wird durch die Verwendung dieser Funktion die Code-Duplizierung reduziert. Lassen Sie uns das Feature zum Fangen mehrerer Ausnahmen in Java anhand eines Beispiels verstehen.

Java Catch Multiple Exceptions

Vor Java 7 haben wir mehrere Ausnahmen nacheinander gefangen, wie unten gezeigt.

Code
catch (IOException ex) {
     logger.error(ex);
     throw new MyException(ex.getMessage());
catch (SQLException ex) {
     logger.error(ex);
     throw new MyException(ex.getMessage());
}

In Java 7 können wir beide dieser Ausnahmen in einem einzigen catch-Block fangen, wie folgt:

Code
catch(IOException | SQLException ex){
     logger.error(ex);
     throw new MyException(ex.getMessage());
}

Wenn ein catch-Block mehrere Ausnahmen behandelt, können Sie diese mit einem senkrechten Strich (|) trennen, und in diesem Fall ist der Ausnahmeparameter (ex) final, sodass Sie ihn nicht ändern können. Der von dieser Funktion generierte Bytecode ist kleiner und reduziert die Redundanz im Code.

VM

Passende Infrastruktur bei centron

Node-Anwendungen wollen deployt werden: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat – oder gleich als Managed Server, wenn der Betrieb nicht bei Ihnen liegen soll. Cloud Server mieten →

Java Rethrow Exception

Ein weiterer Fortschritt wurde in der Compiler-Analyse von erneut geworfenen Ausnahmen gemacht. Die Funktion zum erneuten Werfen von Ausnahmen in Java ermöglicht es Ihnen, spezifischere Ausnahmetypen in der throws-Klausel einer Methodendeklaration anzugeben. Lassen Sie uns dies anhand eines kleinen Beispiels sehen:

Go
package com.journaldev.util;

public class Java7MultipleExceptions {

    public static void main(String[] args) {
        try{
            rethrow("abc");
        }catch(FirstException | SecondException | ThirdException e){
            System.out.println(e.getMessage());
        }
    }

    static void rethrow(String s) throws FirstException, SecondException,
            ThirdException {
        try {
            if (s.equals("First"))
                throw new FirstException("First");
            else if (s.equals("Second"))
                throw new SecondException("Second");
            else
                throw new ThirdException("Third");
        } catch (Exception e) {
            throw e;
        }
    }

    static class FirstException extends Exception {
        public FirstException(String msg) {
            super(msg);
        }
    }

    static class SecondException extends Exception {
        public SecondException(String msg) {
            super(msg);
        }
    }

    static class ThirdException extends Exception {
        public ThirdException(String msg) {
            super(msg);
        }
    }

}

Wie Sie im rethrow-Verfahren sehen können, fängt der catch-Block eine Ausnahme, aber sie ist kein Teil der throws-Klausel. Der Java 7-Compiler analysiert den kompletten try-Block, um zu prüfen, welche Arten von Ausnahmen geworfen und dann aus dem catch-Block erneut geworfen werden. Beachten Sie, dass diese Analyse deaktiviert wird, wenn Sie das Argument des catch-Blocks ändern.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie JavaScript
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren