logo

Java enfin bloqué

Java enfin bloqué est un bloc utilisé pour exécuter du code important comme fermer la connexion, etc.

Le bloc Java final est toujours exécuté, qu'une exception soit gérée ou non. Par conséquent, il contient toutes les déclarations nécessaires qui doivent être imprimées, que l'exception se produise ou non.

Le bloc final suit le bloc try-catch.

Organigramme du bloc final

Java enfin bloqué

Remarque : Si vous ne gérez pas l'exception, avant de terminer le programme, JVM exécute le bloc final (le cas échéant).

Pourquoi utiliser Java pour finalement bloquer ?

  • enfin, le bloc en Java peut être utilisé pour mettre ' nettoyer ' code tel que la fermeture d'un fichier, la fermeture d'une connexion, etc.
  • Les déclarations importantes à imprimer peuvent être placées dans le bloc final.

Utilisation de Java enfin

Voyons les différents cas où Java final block peut être utilisé.

Cas 1 : Lorsqu’une exception ne se produit pas

Voyons l'exemple ci-dessous dans lequel le programme Java ne lève aucune exception et le bloc final est exécuté après le bloc try.

TestFinallyBlock.java

 class TestFinallyBlock { public static void main(String args[]){ try{ //below code do not throw any exception int data=25/5; System.out.println(data); } //catch won't be executed catch(NullPointerException e){ System.out.println(e); } //executed regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of phe code...'); } } 

Sortir:

Java enfin bloqué

Cas 2 : lorsqu'une exception se produit mais n'est pas gérée par le bloc catch

Voyons l'exemple suivant. Ici, le code lève une exception mais le bloc catch ne peut pas la gérer. Malgré cela, le bloc final est exécuté après le bloc try et le programme se termine alors anormalement.

TestFinallyBlock1.java

 public class TestFinallyBlock1{ public static void main(String args[]){ try { System.out.println('Inside the try block'); //below code throws divide by zero exception int data=25/0; System.out.println(data); } //cannot handle Arithmetic type exception //can only accept Null Pointer type exception catch(NullPointerException e){ System.out.println(e); } //executes regardless of exception occured or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } } 

Sortir:

Java enfin bloqué

Cas 3 : lorsqu'une exception se produit et est gérée par le bloc catch

Exemple:

Voyons l'exemple suivant dans lequel le code Java lève une exception et le bloc catch gère l'exception. Plus tard, le bloc final est exécuté après le bloc try-catch. De plus, le reste du code est également exécuté normalement.

TestFinallyBlock2.java

 public class TestFinallyBlock2{ public static void main(String args[]){ try { System.out.println('Inside try block'); //below code throws divide by zero exception int data=25/0; System.out.println(data); } //handles the Arithmetic Exception / Divide by zero exception catch(ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } //executes regardless of exception occured or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } } 

Sortir:

Java enfin bloqué

Règle : pour chaque bloc try, il peut y avoir zéro ou plusieurs blocs catch, mais un seul bloc final.

Remarque : Le bloc final ne sera pas exécuté si le programme se termine (soit en appelant System.exit(), soit en provoquant une erreur fatale provoquant l'abandon du processus).