Mehrere Ausnahmen in Java auslösen

Mohd Ebad Naqvi 12 Oktober 2023
Mehrere Ausnahmen in Java auslösen

In diesem Tutorial wird gezeigt, wie Sie mehrere Ausnahmen in Java auslösen.

Ausnahmen sind die unerwünschten und unerwarteten Ereignisse, die den normalen Fluss der Anweisungen während der Ausführung des Programms stören. Die Wurzelklasse aller Java-Ausnahmen ist java.lang.Throwable. Diese Klasse wird von Error- und Exception-Unterklassen geerbt.

Um Ausnahmen zu behandeln, verwenden wir die Blöcke try...catch.

Im Block try platzieren wir den Code, der eine Ausnahme auslösen kann. Der Block try wird nicht alleine verwendet. Es muss immer entweder catch oder finally folgen. Der Block catch wird verwendet, um die Ausnahme abzufangen. Auf diesen Block kann der finally-Block folgen. Der Block finally wird verwendet, um den wichtigen Code des Programms auszuführen, unabhängig davon, ob eine Ausnahme vorliegt oder nicht.

In Java müssen wir möglicherweise mit mehreren Ausnahmen umgehen. Es ist nicht möglich, zahlreiche Ausnahmen in Java auszulösen. Wir können mehrere Ausnahmen angeben, aber nur eine davon wird ausgelöst.

Wir haben jedoch einige Alternativen, die wir verwenden können, um das Auslösen mehrerer Ausnahmen zu simulieren.

Wir können verkettete Ausnahmen verwenden, um mit mehreren Ausnahmen umzugehen. Solche Ausnahmen weisen darauf hin, dass die ausgelöste Ausnahme durch eine andere Ausnahme verursacht wird.

Zum Beispiel,

public class Main {
  public static void main(String[] args) {
    try {
      NumberFormatException ex = new NumberFormatException("NumberFormatException is thrown");
      ex.initCause(new NullPointerException("NullPointerException is the main cause"));
      throw ex;
    }

    catch (NumberFormatException ex) {
      System.out.println(ex);
      System.out.println(ex.getCause());
    }
  }
}

Ausgabe:

java.lang.NumberFormatException: NumberFormatException is raised
java.lang.NullPointerException: NullPointerException is the main cause

Beachten Sie die Verwendung der Methoden initCause() und getCause(). Die Funktion initCause() setzt die Ausnahmeursache als weitere Ausnahme und getCause() gibt die Ursache der Ausnahme zurück, in unserem Fall NullPointerException.

Wir können auch unterdrückte Ausnahmen verwenden. Hier fügen wir unterdrückte Ausnahmen an die primäre Ausnahme an. Es wurde in Java 7 hinzugefügt.

Um unterdrückte Ausnahmen anzuhängen, verwenden wir die Funktion addSuppressed(). Wir verwenden diese Funktion mit dem Hauptausnahmeobjekt.

Zum Beispiel,

import java.io.*;
class Main {
  public static void main(String[] args) throws Exception {
    try {
      Exception suppressed = new NumberFormatException();
      Exception suppressed2 = new NullPointerException();

      final Exception exe = new Exception();

      exe.addSuppressed(suppressed);
      exe.addSuppressed(suppressed2);
      throw exe;

    }

    catch (Throwable e) {
      Throwable[] suppExe = e.getSuppressed();
      System.out.println("Suppressed:");
      for (int i = 0; i < suppExe.length; i++) {
        System.out.println(suppExe[i]);
      }
    }
  }
}

Ausgabe:

Suppressed:
java.lang.NumberFormatException
java.lang.NullPointerException

Im obigen Beispiel haben wir zwei Ausnahmen an das Hauptobjekt angehängt und die unterdrückten Ausnahmen gedruckt. Um alle unterdrückten Ausnahmen zu erhalten, verwenden wir die Funktion getSuppressed().

Verwandter Artikel - Java Exception