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