Java >> Tutoriel Java >  >> Tag >> final

essayez d'attraper enfin les blocs Java | Exemples de gestion des exceptions

Essayez catch et enfin, le bloc Java est utilisé pour gérer une exception dans les programmes. Chaque bloc a ses propres fonctionnalités et est important. Ce bloc aide à prévenir les plantages intempestifs de l'application et rend l'application robuste.

Il y a toujours un risque que le code d'application génère des exceptions lors de l'exécution et vous devez gérer l'exception en exécutant une autre logique d'application pour en informer l'utilisateur.

À propos d'essayer d'attraper enfin les blocs Java :-

Tous les blocs sont écrit avecun mot-clé suivi des accolades.

  • essayer de bloquer – Il contient le code de l'application, comme la lecture d'un fichier, l'écriture dans des bases de données ou l'exécution d'opérations commerciales complexes.
  • bloc catch – Il gère les exceptions vérifiées levées par le bloc try ainsi que toutes les éventuelles exceptions non vérifiées.
  • bloquer enfin – Il est facultatif et généralement utilisé pour fermer des fichiers, des connexions réseau, etc.

Le flux des blocs Java try-catch-finally

S'il n'y a pas d'exceptions, le bloc catch n'appellera pas et finalement, le code s'exécutera. Une autre condition si une exception se produit, alors tous les blocs seront appelés.

Sur Exception ou non, la ligne de code suivante fonctionne correctement.

Exemples de gestion des exceptions

Exemple de code simple.

Cas 1 :Sans exception

public class FinallyBlock {
 
    public static void main(String args[]){
        try{
            float data=95/9f;
            System.out.println(data);
        }
        catch(NullPointerException e){
            System.out.println(e);
        }
        finally {
            System.out.println("finally block is always executed");
        }
    }
}

Sortie :

10.555555
Le bloc finally est toujours exécuté

Cas 2 :si l'exception se produit

public class FinallyBlock {
 
    public static void main(String args[]) {
        try {
            int data = 5 / 0;
            System.out.println(data);
        } catch (ArithmeticException e) {
            System.out.println(e);
        } finally {
            System.out.println("finally block is always executed");
        }
    }
}

Sortie :

java.lang.ArithmeticException :/ par zéro
Le bloc finally est toujours exécuté

Q :Comment Java try-finally sans catch block ?

Réponse : Vous pouvez utiliser Java pour essayer et finalement bloquer sans problème. Mais vous devez gérer l'erreur ou dépend si vous pouvez gérer les exceptions qui peuvent être déclenchées à ce stade ou non.

Le finally le bloc est généralement utilisé pour fermer des fichiers, des connexions réseau, etc. 

Voir l'exemple ci-dessous :- Avec exception.

public class FinallyBlock {
 
    public static void main(String args[]){
        try{
            int data=9/0;
            System.out.println(data);
        }
        finally {
            System.out.println("finally block is always executed");
        }
    }
}

Sortie :

Q :Comment gérer les exceptions dans finally block java ?

Réponse : Existe-t-il une manière élégante de gérer les exceptions lancées dans le bloc finally ?

Habituellement, procédez comme ceci :

try {
  // Use the resource.
} catch( Exception ex ) {
  // Problem with the resource.
} finally {
  // Put away the resource.
  closeQuietly( resource );
}

Ailleurs :

protected void closeQuietly( Resource resource ) {
  try {
    if (resource != null) {
      resource.close();
    }
  } catch( Exception ex ) {
    log( "Exception during Resource.close()", ex );
  }
}

Source :https://stackoverflow.com/questions/481446/throws-exception-in-finally-blocks

N'hésitez pas à commenter si vous avez des doutes et des suggestions sur ce tutoriel.

Remarque : Cet exemple (Project) est développé dans IntelliJ IDEA 2018.2.6 (Community Edition)
JRE :11.0.1
JVM :VM serveur OpenJDK 64 bits par JetBrains s.r.o
mac OS 10.14.1
Java 11
Tous Java try, catch &finally blocks Exemples de codes sont en Java 11, il peut donc changer selon Java 9 ou 10 ou les versions mises à niveau.


No
Balise Java