Qu’est-ce qu’une Exception?
Une exception est un événement indésirable ou inattendu, qui se produit pendant l’exécution d’un programme, c’est-à-dire au moment de l’exécution, qui perturbe le flux normal des instructions du programme.
Erreur vs Exception
Erreur: Une Erreur indique un problème grave qu’une application raisonnable ne devrait pas essayer de l’attraper.
Exception: Exception indique les conditions qu’une application raisonnable pourrait essayer d’attraper.,
hiérarchie des exceptions
Tous les types d’exceptions et d’erreurs sont des sous-classes de classe Throwable, qui est la classe de base de la hiérarchie.Une branche est dirigée par Exception. Cette classe est utilisée pour les conditions exceptionnelles que les programmes utilisateur doivent attraper. NullPointerException est un exemple d’une telle exception.Une autre branche,Error, est utilisée par le système D’exécution Java (JVM) pour indiquer les erreurs liées à L’environnement d’exécution lui-même(JRE). StackOverflowError est un exemple d’une telle erreur.,
Pour vérifié vs décoché exception, voir Vérifié vs Décoché Exceptions
Comment JVM gérer une Exception?
gestion des exceptions par défaut : chaque fois qu’à l’intérieur d’une méthode, si une exception s’est produite, la méthode crée un objet connu sous le nom D’objet Exception et le remet au système d’exécution(JVM). L’objet exception contient le nom et la description de l’exception, ainsi que l’état actuel du programme où l’exception s’est produite., La création de l’objet Exception et sa gestion sur le système d’exécution s’appellent lancer une Exception.Il peut y avoir la liste des méthodes qui ont été appelées pour accéder à la méthode où l’exception s’est produite. Cette liste ordonnée des méthodes est appelée pile D’appels.Maintenant, la procédure suivante va se produire.
- Le système d’exécution recherche la pile d’appels pour trouver la méthode qui contient le bloc de code qui peut gérer l’exception survenue. Le bloc du code est appelé Gestionnaire D’exceptions.,
- Le système d’exécution commence à rechercher à partir de la méthode dans laquelle l’exception s’est produite, passe par la pile d’appels dans l’ordre inverse dans lequel les méthodes ont été appelées.
- S’il trouve le gestionnaire approprié, il lui transmet l’exception survenue. Un gestionnaire approprié signifie que le type de l’objet exception lancé correspond au type de l’objet exception qu’il peut gérer.,
- si le système d’exécution recherche toutes les méthodes de la pile d’appels et n’a pas pu trouver le gestionnaire approprié , alors le système d’exécution transfère l’objet Exception au gestionnaire d’exception par défaut, qui fait partie du système d’exécution. Ce gestionnaire imprime les informations d’exception dans le format suivant et termine le programme anormalement.
Exception in thread "xxx" Name of Exception : Description... ...... .. // Call Stack
Voir le diagramme ci-dessous pour comprendre le flux de la pile d’appel.,>
{
System.out.println(ex.getMessage());
}
}
}
Output :
/ by zero.
How Programmer handles an exception?,
gestion personnalisée des exceptions : la gestion des exceptions Java est gérée via cinq mots-clés: try, catch, throw, throws et finally. Brièvement, voici comment ils fonctionnent. Les instructions de programme qui, selon vous, peuvent déclencher des exceptions sont contenues dans un bloc try. Si une exception se produit dans le bloc try, elle est levée. Votre code peut attraper cette exception (en utilisant catch block) et la gérer de manière rationnelle. Les exceptions générées par le système sont automatiquement levées par le système D’exécution Java. Pour lancer manuellement une exception, utilisez le mot clé throw., Toute exception levée d’une méthode doit être spécifiée en tant que telle par une clause throws. Tout code qui doit absolument être exécuté après la fin d’un bloc try est placé dans un bloc finally.
Article détaillé: le flux de contrôle dans try catch bloque enfin
besoin de la clause try-catch(gestion des exceptions personnalisée)
considérez le programme java suivant.
Résultat :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at GFG.main(GFG.java:9)
Explication : Dans l’exemple ci-dessus un tableau est défini avec la taille c’est à dire, vous pouvez accéder aux éléments uniquement de l’index 0 à 3. Mais vous essayez d’accéder aux éléments à l’index 4 (par erreur) c’est pourquoi il lance un exception.In dans ce cas, JVM termine le programme anormalement. Le système de déclaration.hors.println (”Salut, je veux exécuter »); ne s’exécutera jamais. Pour l’exécuter, nous devons gérer l’exception en utilisant try-catch. Par conséquent, pour continuer le flux normal du programme, nous avons besoin de la clause try-catch.,
comment utiliser la clause try-catch
Points à retenir:
- dans une méthode, il peut y avoir plus d’une instruction qui pourrait lancer une exception, alors mettez toutes ces instructions dans son propre bloc try et fournissez un gestionnaire d’exception séparé dans son propre bloc catch pour chacune d’elles.
- Si une exception se produit dans le bloc try, cette exception est gérée par le gestionnaire d’exceptions qui lui est associé. Pour associer un gestionnaire d’exceptions,nous devons mettre le bloc catch après. Il peut y avoir plus d’un gestionnaire d’exceptions., Chaque bloc catch est un gestionnaire d’exception qui gère l’exception du type indiqué par son argument. L’argument ExceptionType déclare le type de l’exception qu’il peut gérer et doit être le nom de la classe qui hérite de la classe Throwable.
- pour chaque bloc try, il peut y avoir zéro ou plusieurs blocs catch, mais un seul bloc finalement.
- Le bloc finally est optional.It est toujours exécuté, qu’une exception se soit produite dans le bloc try ou non . Si une exception se produit, elle sera exécutée après avoir essayé et intercepté les blocs., Et si l’exception ne se produit pas, elle sera exécutée après le bloc try. Le bloc finally en java est utilisé pour mettre des codes importants tels que le code de nettoyage, par exemple la fermeture du fichier ou la fermeture de la connexion.
en Résumé
- les Types d’Exceptions en Java
- Vérifié vs Décoché Exceptions
- Lancer en Jette en Java
Référence :
Cet article est apporté par Nitsdheerendra et Gaurav Miglani. Si vous aimez GeeksforGeeks et souhaitez contribuer, vous pouvez également écrire un article en utilisant contribute.geeksforgeeks.,org ou envoyez votre article à [email protected]. voir votre article apparaissant sur la page principale GeeksforGeeks et aider les autres Geeks.
veuillez écrire des commentaires si vous trouvez quelque chose d’incorrect, ou si vous souhaitez partager plus d’informations sur le sujet discuté ci-dessus.
attention lecteur! N’arrêtez pas d’apprendre maintenant. Obtenez tous les concepts de base et de Collections Java importants avec le cours Fundamentals of Java et Java Collections à un prix adapté aux étudiants et devenez prêt pour l’industrie.,