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 … Block zu fangen
- endlich blockieren
- werfen und wirft 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… catchBlock:
try ( // code ) catch(Exception e) ( // code )
Hier haben wir den Code platziert, der möglicherweise eine Ausnahme innerhalb des tryBlocks generiert . Auf jeden tryBlock folgt ein catchBlock.
Wenn eine Ausnahme auftritt, wird sie vom catchBlock abgefangen . Der catchBlock kann nicht ohne den tryBlock verwendet werden.
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 => / um Null
Im Beispiel versuchen wir, eine Zahl durch zu teilen 0. Hier generiert dieser Code eine Ausnahme.
Um die Ausnahme zu behandeln, haben wir den Code 5 / 0in den tryBlock eingefügt. Wenn nun eine Ausnahme auftritt, wird der Rest des Codes im tryBlock übersprungen.
Der catchBlock fängt die Ausnahme ab und Anweisungen innerhalb des catch-Blocks werden ausgeführt.
Wenn keine der Anweisungen im tryBlock eine Ausnahme generiert, wird der catchBlock übersprungen.
2. Java blockiert schließlich
In Java wird der finallyBlock immer ausgeführt, unabhängig davon, ob eine Ausnahme vorliegt oder nicht.
Der finallyBlock ist optional. Und für jeden tryBlock kann es nur einen finallyBlock geben.
Die grundlegende Syntax von finallyBlock lautet:
try ( //code ) catch (ExceptionType1 e1) ( // catch block ) finally ( // finally block always executes )
Wenn eine Ausnahme auftritt, wird der finallyBlock nach dem try… catchBlock ausgeführt. Andernfalls wird es nach dem try-Block ausgeführt. Für jeden tryBlock kann es nur einen finallyBlock geben.
Beispiel: Java-Ausnahmebehandlung mit 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 Dies ist der finally-Block
Im obigen Beispiel teilen wir eine Zahl innerhalb des Blocks durch 0try . Hier generiert dieser Code eine ArithmeticException.
Die Ausnahme wird vom catchBlock abgefangen . Und dann wird der finallyBlock ausgeführt.
Hinweis : Es wird empfohlen, den finallyBlock zu verwenden. Dies liegt daran, dass wichtige Bereinigungscodes wie z.
- Code, der möglicherweise versehentlich bei der Rückgabe übersprungen, fortgesetzt oder unterbrochen wird
- Schließen einer Datei oder Verbindung
3. Java wirft und wirft Schlüsselwort
Das Java- throwSchlüsselwort wird verwendet, um eine einzelne Ausnahme explizit auszulösen.
Wenn wir throweine Ausnahme haben, bewegt sich der Programmfluss von tryBlock zu catchBlock.
Beispiel: Ausnahmebehandlung mit Java-Wurf
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
Ausnahme im Thread "main" java.lang.ArithmeticException: Versuch, bei Main.divideByZero (Main.java:5) bei Main.main (Main.java:9) durch 0 zu teilen
Im obigen Beispiel wird ArithmeticExceptiondas throwSchlüsselwort using explizit ausgelöst.
In ähnlicher Weise wird das throwsSchlüsselwort verwendet, um den Typ der Ausnahmen zu deklarieren, die innerhalb der Methode auftreten können. Es wird in der Methodendeklaration verwendet.
Beispiel: Java löst ein 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 (Das System kann die angegebene Datei nicht finden.)
Wenn wir dieses Programm ausführen und die Datei test.txt nicht existiert, wird FileInputStreama ausgelöst , FileNotFoundExceptionwodurch die IOExceptionKlasse erweitert wird.
Die findFile()Methode gibt an, dass ein IOExceptionausgelöst werden kann. Die 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 der throwsKlausel angegeben werden.
Um mehr zu erfahren, besuchen Sie Java throw and throw.








