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
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