Mehrere Ausnahmen in Java abfangen
- Abfangen mehrerer Ausnahmen mit mehreren Catch-Anweisungen in Java
-
Mehrere Ausnahmen mit
instanceOf
in Java abfangen -
Fangen Sie mehrere Ausnahmen in einem Fangblock mit
|
ab auf Java
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInVerwandter Artikel - Java Exception
- Ausnahme bei ungültiger Eingabe in Java
- Ausnahme im Hauptthread Java.Util.NoSuchElementException: Keine Zeile gefunden
- Ausnahme im Thread AWT-EventQueue-0 java.lang.NullPointerException
- Beheben Sie die Java.Net.BindException: Adresse wird bereits verwendet: Bind
- Der Java-Gateway-Prozess wurde beendet, bevor seine Portnummer gesendet wurde
- Java Throwable vs. Ausnahmeklasse