logo

Bloc try-catch Java

Bloc d'essai Java

Java essayer block est utilisé pour enfermer le code qui pourrait lever une exception. Il doit être utilisé dans le cadre de la méthode.

Si une exception se produit au niveau d'une instruction particulière dans le bloc try, le reste du code du bloc ne s'exécutera pas. Il est donc recommandé de ne pas conserver le code dans le bloc try qui ne lèvera pas d'exception.

Le bloc Java try doit être suivi d’un bloc catch ou enfin d’un bloc.

Syntaxe du try-catch Java

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

Syntaxe du bloc try-finally

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

Bloc de capture Java

Le bloc Java catch est utilisé pour gérer l’exception en déclarant le type d’exception dans le paramètre. L'exception déclarée doit être l'exception de la classe parent (c'est-à-dire Exception) ou le type d'exception généré. Cependant, la bonne approche consiste à déclarer le type d’exception généré.

liste des utilisateurs MySQL

Le bloc catch doit être utilisé après le bloc try uniquement. Vous pouvez utiliser plusieurs blocs catch avec un seul bloc try.

Fonctionnement interne du bloc Java try-catch

Bloc try-catch Java

La JVM vérifie d'abord si l'exception est gérée ou non. Si l'exception n'est pas gérée, JVM fournit un gestionnaire d'exceptions par défaut qui effectue les tâches suivantes :

  • Imprime la description de l'exception.
  • Imprime la trace de la pile (Hiérarchie des méthodes où l'exception s'est produite).
  • Provoque la fin du programme.

Mais si le programmeur de l'application gère l'exception, le flux normal de l'application est maintenu, c'est-à-dire que le reste du code est exécuté.

Gestion du problème sans exception

Essayons de comprendre le problème si nous n'utilisons pas de bloc try-catch.

Exemple 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'); } } 
Testez-le maintenant

Sortir:

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

Comme le montre l'exemple ci-dessus, le reste du code n'est pas exécuté (dans ce cas, le reste du code la déclaration n'est pas imprimée).

Il peut y avoir 100 lignes de code après l'exception. Si l'exception n'est pas gérée, tout le code situé sous l'exception ne sera pas exécuté.

Solution par gestion des exceptions

Voyons la solution du problème ci-dessus par un bloc java try-catch.

Exemple 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'); } } 
Testez-le maintenant

Sortir:

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

Comme le montre l'exemple ci-dessus, le reste du code est exécuté, c'est-à-dire que le reste du code la déclaration est imprimée.

Exemple 3

Dans cet exemple, nous avons également conservé le code dans un bloc try qui ne lèvera pas d'exception.

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); } } } 
Testez-le maintenant

Sortir:

 java.lang.ArithmeticException: / by zero 

Ici, nous pouvons voir que si une exception se produit dans le bloc try, le reste du code du bloc ne s'exécutera pas.

Exemple 4

Ici, nous gérons l'exception en utilisant l'exception de la classe parent.

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'); } } 
Testez-le maintenant

Sortir:

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

Exemple 5

Voyons un exemple pour imprimer un message personnalisé en cas d'exception.

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'); } } } 
Testez-le maintenant

Sortir:

 Can't divided by zero 

Exemple 6

Voyons un exemple pour résoudre l'exception dans un bloc catch.

chaîne de concaténation Java

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)); } } } 
Testez-le maintenant

Sortir:

 25 

Exemple 7

Dans cet exemple, en plus du bloc try, nous enfermons également le code d'exception dans un bloc catch.

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'); } } 
Testez-le maintenant

Sortir:

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

Ici, nous pouvons voir que le bloc catch ne contenait pas le code d'exception. Alors, placez le code d'exception dans un bloc try et utilisez le bloc catch uniquement pour gérer les exceptions.

Exemple 8

Dans cet exemple, nous traitons l'exception générée (Arithmetic Exception) avec un type différent de classe d'exception (ArrayIndexOutOfBoundsException).

TryCatchExample8.java

 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'); } } 
Testez-le maintenant

Sortir:

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

Exemple 9

Voyons un exemple pour gérer une autre exception non vérifiée.

TryCatchExample9.java

programme c pour tableau à deux dimensions
 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'); } } 
Testez-le maintenant

Sortir:

 java.lang.ArrayIndexOutOfBoundsException: 10 rest of the code 

Exemple 10

Voyons un exemple pour gérer les exceptions vérifiées.

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'); } } 
Testez-le maintenant

Sortir:

 File saved successfully