logo

Java-Try-Catch-Block

Java-Try-Block

Java versuchen Der Block wird verwendet, um den Code einzuschließen, der möglicherweise eine Ausnahme auslöst. Es muss innerhalb der Methode verwendet werden.

Wenn bei der bestimmten Anweisung im Try-Block eine Ausnahme auftritt, wird der Rest des Blockcodes nicht ausgeführt. Daher wird empfohlen, den Code nicht im Try-Block zu belassen, der keine Ausnahme auslöst.

Dem Java-Try-Block muss entweder ein Catch- oder ein Final-Block folgen.

Syntax von Java Try-Catch

 try{ //code that may throw an exception }catch(Exception_class_Name ref){} 

Syntax des try-finally-Blocks

 try{ //code that may throw an exception }finally{} 

Java-Catch-Block

Der Java-Catch-Block wird zur Behandlung der Ausnahme verwendet, indem der Ausnahmetyp innerhalb des Parameters deklariert wird. Die deklarierte Ausnahme muss die Ausnahme der übergeordneten Klasse (d. h. Exception) oder der generierte Ausnahmetyp sein. Der gute Ansatz besteht jedoch darin, den generierten Ausnahmetyp zu deklarieren.

Java hat als nächstes

Der Catch-Block darf nur nach dem Try-Block verwendet werden. Sie können mehrere Catch-Blöcke mit einem einzigen Try-Block verwenden.

Interne Funktionsweise des Java-Try-Catch-Blocks

Java-Try-Catch-Block

Die JVM prüft zunächst, ob die Ausnahme behandelt wird oder nicht. Wenn eine Ausnahme nicht behandelt wird, stellt JVM einen Standard-Ausnahmehandler bereit, der die folgenden Aufgaben ausführt:

  • Druckt die Ausnahmebeschreibung aus.
  • Druckt den Stack-Trace (Hierarchie der Methoden, bei denen die Ausnahme aufgetreten ist).
  • Bewirkt, dass das Programm beendet wird.

Wenn der Anwendungsprogrammierer die Ausnahme jedoch behandelt, bleibt der normale Ablauf der Anwendung erhalten, d. h. der Rest des Codes wird ausgeführt.

Problem ohne Ausnahmebehandlung

Versuchen wir, das Problem zu verstehen, wenn wir keinen Try-Catch-Block verwenden.

Beispiel 1

TryCatchExample1.java

 public class TryCatchExample1 { public static void main(String[] args) { int data=50/0; //may throw exception System.out.println('rest of the code'); } } 
Testen Sie es jetzt

Ausgabe:

 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Wie im obigen Beispiel gezeigt, ist die Rest des Codes wird nicht ausgeführt (in diesem Fall wird die Rest des Codes (die Abrechnung wird nicht gedruckt).

Nach der Ausnahme können 100 Codezeilen vorhanden sein. Wenn die Ausnahme nicht behandelt wird, wird der gesamte Code unterhalb der Ausnahme nicht ausgeführt.

Lösung durch Ausnahmebehandlung

Sehen wir uns die Lösung des obigen Problems durch einen Java-Try-Catch-Block an.

Beispiel 2

TryCatchExample2.java

 public class TryCatchExample2 { public static void main(String[] args) { try { int data=50/0; //may throw exception } //handling the exception catch(ArithmeticException e) { System.out.println(e); } System.out.println('rest of the code'); } } 
Testen Sie es jetzt

Ausgabe:

 java.lang.ArithmeticException: / by zero rest of the code 

Wie im obigen Beispiel gezeigt, ist die Rest des Codes ausgeführt wird, d. h. die Rest des Codes Die Abrechnung wird gedruckt.

Beispiel 3

In diesem Beispiel haben wir den Code auch in einem Try-Block gespeichert, der keine Ausnahme auslöst.

TryCatchExample3.java

 public class TryCatchExample3 { public static void main(String[] args) { try { int data=50/0; //may throw exception // if exception occurs, the remaining statement will not exceute System.out.println('rest of the code'); } // handling the exception catch(ArithmeticException e) { System.out.println(e); } } } 
Testen Sie es jetzt

Ausgabe:

 java.lang.ArithmeticException: / by zero 

Hier können wir sehen, dass der Rest des Blockcodes nicht ausgeführt wird, wenn im Try-Block eine Ausnahme auftritt.

Beispiel 4

Hier behandeln wir die Ausnahme mithilfe der Ausnahme der übergeordneten Klasse.

Starten Sie MySQL Ubuntu neu

TryCatchExample4.java

 public class TryCatchExample4 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // handling the exception by using Exception class catch(Exception e) { System.out.println(e); } System.out.println('rest of the code'); } } 
Testen Sie es jetzt

Ausgabe:

 java.lang.ArithmeticException: / by zero rest of the code 

Beispiel 5

Sehen wir uns ein Beispiel zum Drucken einer benutzerdefinierten Nachricht bei einer Ausnahme an.

TryCatchExample5.java

 public class TryCatchExample5 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // handling the exception catch(Exception e) { // displaying the custom message System.out.println('Can't divided by zero'); } } } 
Testen Sie es jetzt

Ausgabe:

 Can't divided by zero 

Beispiel 6

Sehen wir uns ein Beispiel zum Auflösen der Ausnahme in einem Catch-Block an.

TryCatchExample6.java

 public class TryCatchExample6 { public static void main(String[] args) { int i=50; int j=0; int data; try { data=i/j; //may throw exception } // handling the exception catch(Exception e) { // resolving the exception in catch block System.out.println(i/(j+2)); } } } 
Testen Sie es jetzt

Ausgabe:

 25 

Beispiel 7

In diesem Beispiel schließen wir neben dem Try-Block auch Ausnahmecode in einen Catch-Block ein.

TryCatchExample7.java

 public class TryCatchExample7 { public static void main(String[] args) { try { int data1=50/0; //may throw exception } // handling the exception catch(Exception e) { // generating the exception in catch block int data2=50/0; //may throw exception } System.out.println('rest of the code'); } } 
Testen Sie es jetzt

Ausgabe:

 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Hier können wir sehen, dass der Catch-Block den Ausnahmecode nicht enthielt. Schließen Sie also den Ausnahmecode in einen Try-Block ein und verwenden Sie den Catch-Block nur zur Behandlung der Ausnahmen.

Beispiel 8

In diesem Beispiel behandeln wir die generierte Ausnahme (Arithmetic Exception) mit einer anderen Art von Ausnahmeklasse (ArrayIndexOutOfBoundsException).

TryCatchExample8.java

Knn-Algorithmus
 public class TryCatchExample8 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // try to handle the ArithmeticException using ArrayIndexOutOfBoundsException catch(ArrayIndexOutOfBoundsException e) { System.out.println(e); } System.out.println('rest of the code'); } } 
Testen Sie es jetzt

Ausgabe:

 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Beispiel 9

Sehen wir uns ein Beispiel für die Behandlung einer weiteren ungeprüften Ausnahme an.

TryCatchExample9.java

 public class TryCatchExample9 { public static void main(String[] args) { try { int arr[]= {1,3,5,7}; System.out.println(arr[10]); //may throw exception } // handling the array exception catch(ArrayIndexOutOfBoundsException e) { System.out.println(e); } System.out.println('rest of the code'); } } 
Testen Sie es jetzt

Ausgabe:

 java.lang.ArrayIndexOutOfBoundsException: 10 rest of the code 

Beispiel 10

Sehen wir uns ein Beispiel für die Behandlung einer geprüften Ausnahme an.

TryCatchExample10.java

 import java.io.FileNotFoundException; import java.io.PrintWriter; public class TryCatchExample10 { public static void main(String[] args) { PrintWriter pw; try { pw = new PrintWriter('jtp.txt'); //may throw exception pw.println('saved'); } // providing the checked exception handler catch (FileNotFoundException e) { System.out.println(e); } System.out.println('File saved successfully'); } } 
Testen Sie es jetzt

Ausgabe:

 File saved successfully