Java-Ausnahmebehandlung
Java-Ausnahmebehandlung
Im Tutorial lernen wir anhand von Beispielen verschiedene Ansätze der Ausnahmebehandlung in Java kennen.
Im letzten Tutorial haben wir etwas über Java-Ausnahmen gelernt. Wir wissen, dass Ausnahmen die Ausführung eines Programms abnormal beenden.
Aus diesem Grund ist es wichtig, Ausnahmen zu behandeln. Hier ist eine Liste verschiedener Ansätze zur Behandlung von Ausnahmen in Java.
- versuchen Sie ... Catch-Block
- endlich blockieren
- throw und throws Schlüsselwort
1. Java try...catch block
Der Try-Catch-Block wird verwendet, um Ausnahmen in Java zu behandeln. Hier ist die Syntax von try...catch
blockieren:
try {
// code
}
catch(Exception e) {
// code
}
Hier haben wir den Code, der möglicherweise eine Ausnahme generiert, innerhalb von try
platziert Block. Alle try
Block folgt ein catch
blockieren.
Wenn eine Ausnahme auftritt, wird sie von catch
abgefangen Block. Die catch
Block kann nicht ohne den try
verwendet werden blockieren.
Beispiel:Ausnahmebehandlung mit try...catch
class Main {
public static void main(String[] args) {
try {
// code that generate exception
int divideByZero = 5 / 0;
System.out.println("Rest of code in try block");
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException => " + e.getMessage());
}
}
}
Ausgabe
ArithmeticException => / by zero
Im Beispiel versuchen wir, eine Zahl durch 0
zu teilen . Hier erzeugt dieser Code eine Ausnahme.
Um die Ausnahme zu behandeln, haben wir den Code 5 / 0
eingefügt innerhalb der try
Block. Wenn nun eine Ausnahme auftritt, wird der Rest des Codes innerhalb des try
Block wird übersprungen.
Die catch
block fängt die Ausnahme ab und Anweisungen innerhalb des catch-Blocks werden ausgeführt.
Wenn keine der Anweisungen in try
-Block generiert eine Ausnahme, die catch
Block wird übersprungen.
2. Java schließlich blockieren
In Java der finally
Block wird immer ausgeführt, egal ob es eine Ausnahme gibt oder nicht.
Die finally
Block ist optional. Und für jeden try
-Block darf es nur einen finally
geben blockieren.
Die grundlegende Syntax von finally
Block ist:
try {
//code
}
catch (ExceptionType1 e1) {
// catch block
}
finally {
// finally block always executes
}
Wenn eine Ausnahme auftritt, wird der finally
Block wird nach try...catch
ausgeführt Block. Andernfalls wird es nach dem try-Block ausgeführt. Für jeden try
-Block darf es nur einen finally
geben blockieren.
Beispiel:Java-Ausnahmebehandlung mit dem finally-Block
class Main {
public static void main(String[] args) {
try {
// code that generates exception
int divideByZero = 5 / 0;
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException => " + e.getMessage());
}
finally {
System.out.println("This is the finally block");
}
}
}
Ausgabe
ArithmeticException => / by zero This is the finally block
Im obigen Beispiel teilen wir eine Zahl durch 0 innerhalb des try
Block. Hier erzeugt dieser Code einen ArithmeticException
.
Die Ausnahme wird von catch
abgefangen Block. Und dann die finally
Block wird ausgeführt.
Hinweis :Es empfiehlt sich, den finally
zu verwenden Block. Das liegt daran, dass es wichtige Bereinigungscodes wie
- Code, der versehentlich durch Return, Continue oder Break übersprungen werden könnte
- Schließen einer Datei oder Verbindung
3. Java throw und throws Schlüsselwort
Der Java-throw
Schlüsselwort wird verwendet, um explizit eine einzelne Ausnahme auszulösen.
Wenn wir throw
eine Ausnahme, der Ablauf des Programms bewegt sich von try
Block zum catch
blockieren.
Beispiel:Ausnahmebehandlung mit Java-Throw
class Main {
public static void divideByZero() {
// throw an exception
throw new ArithmeticException("Trying to divide by 0");
}
public static void main(String[] args) {
divideByZero();
}
}
Ausgabe
Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0 at Main.divideByZero(Main.java:5) at Main.main(Main.java:9)
Im obigen Beispiel werfen wir ausdrücklich den ArithmeticException
mit dem throw
Schlüsselwort.
Ebenso der throws
Das Schlüsselwort wird verwendet, um die Art der Ausnahmen zu deklarieren, die innerhalb der Methode auftreten können. Es wird in der Methodendeklaration verwendet.
Beispiel:Java löst Schlüsselwort aus
import java.io.*;
class Main {
// declareing the type of exception
public static void findFile() throws IOException {
// code that may generate IOException
File newFile = new File("test.txt");
FileInputStream stream = new FileInputStream(newFile);
}
public static void main(String[] args) {
try {
findFile();
}
catch (IOException e) {
System.out.println(e);
}
}
}
Ausgabe
java.io.FileNotFoundException: test.txt (The system cannot find the file specified)
Wenn wir dieses Programm ausführen, wenn die Datei test.txt existiert nicht, FileInputStream
wirft einen FileNotFoundException
was den IOException
erweitert Klasse.
Der findFile()
Methode gibt an, dass ein IOException
geworfen werden kann. Der main()
Methode ruft diese Methode auf und behandelt die Ausnahme, wenn sie ausgelöst wird.
Wenn eine Methode keine Ausnahmen behandelt, muss die Art der Ausnahmen, die darin auftreten können, in throws
angegeben werden Klausel.
Um mehr zu erfahren, besuchen Sie Java Throw und Throws.
Java