Mehrere Ausnahmen in Java abfangen

Rupam Yadav 12 Oktober 2023
  1. Abfangen mehrerer Ausnahmen mit mehreren Catch-Anweisungen in Java
  2. Mehrere Ausnahmen mit instanceOf in Java abfangen
  3. Fangen Sie mehrere Ausnahmen in einem Fangblock mit | ab auf Java
Mehrere Ausnahmen in Java abfangen

Heute sehen wir uns an, wie wir mehrere Ausnahmen in Java verwenden und abfangen können. Eine Ausnahme in Java tritt auf, wenn während der Laufzeit ein unerwünschtes Ereignis eintritt. Die gängigste Methode zum Anzeigen einer Ausnahme ist die Verwendung der try-catch-Schlüsselwörter. Hier enthält der try den zu überprüfenden Codeblock und der catch den Code, der bei einer Exception angezeigt wird.

Anhand der folgenden Beispiele werden wir uns die drei Methoden ansehen, um mehrere Ausnahmen in einem einzigen Catch zu verwenden.

Abfangen mehrerer Ausnahmen mit mehreren Catch-Anweisungen in Java

Im Beispiel nehmen wir die beiden Eingaben vom Typ int vom Benutzer und teilen sie dann, um das Ergebnis anzuzeigen. Beachten Sie, dass wir diesen Code in einen try-Block eingeschlossen haben; das bedeutet, dass es auch einen catch-Block haben muss.

Es können mehrere Ausnahmen ausgelöst werden, wie die InputMismatchException, wenn der eingegebene Wert nicht vom Typ int ist, und ArithmeticException, wenn num2 den Wert Null erhält, da keine Zahl durch Null geteilt wird. Wir können eine Exception auslösen, die allen anderen Exceptions übergeordnet ist.

Um sie alle abzufangen, schreiben wir drei verschiedene catch-Blöcke mit ihren Ausnahmetypen und drucken die Meldung aus, um anzuzeigen, wann diese Ausnahme auftritt. Die Ausgabe zeigt die unterschiedlichen Ergebnisse, wenn es keine Ausnahme gibt und wenn es Ausnahmen gibt.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (InputMismatchException e1) {
      System.out.println("Error! - Please enter a number.");
    } catch (ArithmeticException e2) {
      System.out.println("Error! - You cannot divide any number with 0");
    } catch (Exception e3) {
      System.out.println("An error occurred please try again!");
    }
  }
}

Ausgang 1:

Enter two numbers : num1 : 10 num2 : 2 After division result : 5

Ausgang 2:

Enter two numbers : num1 : 50 num2 : hhh Error !-Please enter a number.

Ausgang 3:

Enter two numbers : num1 : 10 num2 : 0 Error !-You cannot divide any number with 0

Mehrere Ausnahmen mit instanceOf in Java abfangen

Eine andere Methode, die Sie ausführen können, ist die Verwendung der Funktion instanceOf, die überprüft, ob ein Objekt vom angegebenen Typ ist oder nicht; es gibt einen booleschen Wert zurück. Wir verwenden das gleiche Beispiel wie oben, aber hier verwenden wir einen einzelnen catch-Block mit mehreren if-Anweisungen.

Wie oben besprochen, ist die Exception die Elternklasse der häufigsten Exceptions. Wir können sein Objekt verwenden, um zu überprüfen, ob die ausgelöste Ausnahme vom angegebenen Typ ist. Hier überprüfen wir die beiden Ausnahmen: InputMismatchException und ArithmeticException.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (Exception e) {
      if (e instanceof InputMismatchException) {
        System.out.println("Error! - Please enter a number.");
      } else if (e instanceof ArithmeticException) {
        System.out.println("Error! - You cannot divide any number with 0");
      } else {
        System.out.println("An error occurred please try again!");
      }
    }
  }
}

Ausgabe:

Enter two numbers: 
num1: 
d
Error! - Please enter a number.

Fangen Sie mehrere Ausnahmen in einem Fangblock mit | ab auf Java

In Java 7 und höher können wir das Pipe-Symbol oder bitwise OR verwenden, um mehrere Ausnahmen in einem einzigen Catch zu schreiben. Im Beispiel teilen wir die beiden eingegebenen Zahlen und prüfen dann, ob eine der beiden Ausnahmen wahr ist. Wenn es wahr ist, wird die Fehlermeldung gedruckt.

import java.util.InputMismatchException;
import java.util.Scanner;

public class MultiExceptions {
  public static void main(String[] args) {
    System.out.println("Enter two numbers: ");
    Scanner sc = new Scanner(System.in);
    try {
      System.out.println("num1: ");
      int num1 = sc.nextInt();

      System.out.println("num2: ");
      int num2 = sc.nextInt();

      int dividedNum = num1 / num2;

      System.out.println("After division result: " + dividedNum);

    } catch (InputMismatchException | ArithmeticException e) {
      System.out.println("An error occurred please try again");
    }
  }
}

Ausgabe:

Enter two numbers: 
num1: 
f
An error occurred please try again
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java Exception