dans ce tutoriel sur les exceptions Java, découvrez ce qu’est une exception en Java, qu’est-ce qu’une exception cochée et en quoi elle est différente d’une exception non cochée. Nous allons également apprendre quelques bonnes pratiques autour des exceptions vérifiées Java.
Table of Contents1. What is an exception in Java?2. Checked vs unchecked exceptions in Java3. Java exception handling best practices
qu’est-Ce que une exception en Java?
« Une exception est un événement inattendu qui survient pendant l’exécution d’un programme qui perturbe le flux normal des instructions.,”
En Java, toutes les erreurs et exceptions sont représentées avec la classe Throwable. Lorsqu’une erreur se produit dans une méthode, la méthode crée un objet (de tout sous-type de Throwable
) et le remet au système d’exécution. L’objet, appelé un objet d’exception.
L’objet Exception contient des informations sur l’erreur, y compris son type et l’état du programme lorsque l’erreur s’est produite. Créer un objet d’exception et le remettre au système d’exécution s’appelle lancer une exception.
1.1., Gestion des exceptions
Nous avons deux choix lorsqu’un objet exception est créé dans notre application.
- Soit on va la traiter dans la méthode
- Ou nous pouvons le transmettre à l’appelant de la méthode de le laisser gérer.
c’est une décision très importante à prendre lors de la définition des responsabilités d’une méthode. Une méthode doit indiquer clairement ce que tous les scénarios exceptionnels qu’il va gérer et ce qu’il ne sera pas. Il est défini dans la syntaxe de la méthode en utilisant la clause throws.
pour gérer l’exception, nous devons attraper l’exception dans la section catch du bloc try-catch.,
If an exception is not handled in the application, then it will propagate to JVM and JVM will usually terminate the program itself.
Checked vs unchecked exceptions in Java
2.1. Exception Hierarchy
In Java, exceptions are broadly categorized into two sections: checked exceptions and unchecked exceptions.
2.2. Checked Exceptions
Java forces you to handle these error scenarios in some manner in your application code., Ils viendront immédiatement dans votre visage, une fois que vous commencez à compiler votre programme. Vous pouvez certainement les ignorer et les laisser passer à la JVM, mais c’est une mauvaise habitude. Idéalement, vous devez gérer ces exceptions au niveau approprié dans votre application afin que vous puissiez informer l’utilisateur de l’échec et lui demander de réessayer/ venir plus tard.
généralement, les exceptions vérifiées désignent des scénarios d’erreur qui échappent au contrôle immédiat du programme. Ils se produisent généralement en interaction avec des ressources extérieures/ressources réseau, par exemple des problèmes de base de données, des erreurs de connexion réseau, des fichiers manquants, etc.,
Checked exceptions are subclasses of Exception class.
Example of checked exceptions are : ClassNotFoundException, IOException, SQLException and so on.
Checked Exception Example
FileNotFoundException
is a checked exception in Java. Anytime, we want to read a file from filesystem, Java forces us to handle error situation where file may not be present in place.
public static void main(String args) { FileReader file = new FileReader("somefile.txt");}
In above case, you will get compile time error with message – Unhandled exception type FileNotFoundException
.,
pour rendre le programme capable de compiler, vous devez gérer cette situation d’erreur dans le bloctry-catch
. Ci-dessous le code donné compilera absolument bien.
2.3. Exceptions non cochées
Java fournit également des exceptions non cochées, dont les occurrences ne sont pas vérifiées par le compilateur. Ils entreront dans la vie/se produiront dans votre programme, une fois que tout code buggy est exécuté.
Une méthode n’est pas forcée par le compilateur de déclarer les exceptions non cochées lancées par son implémentation. Généralement, de telles méthodes ne les déclarent presque toujours pas.,
Les Exceptions non cochées sont des sous-classes de RuntimeException. Exemple de décoché les exceptions sont les suivantes : ArithmeticException
, ArrayStoreException
, ClassCastException
et ainsi de suite.
RuntimeException
est elle-même une sous-classe deException
c’est-à-dire que toutes les classes d’exceptions non cochées auraient dû être cochées exceptions implicitement, mais elles ne le sont pas.”exemple D’Exception non coché
extraire le code donné ci-dessous. Le code ci-dessus ne donne aucune erreur de compilation., Mais quand vous l’exemple, il lance NullPointerException
. NullPointerException est une exception non cochée en Java.
rappelez-vous que la plus grande différence entre les exceptions vérifiées et non cochées est que les exceptions vérifiées sont forcées par le compilateur et utilisées pour indiquer des conditions exceptionnelles hors du contrôle du programme (par exemple, des erreurs d’E / S), tandis que les exceptions non cochées se produisent pendant l’exécution et sont utilisées pour indiquer des erreurs,
Java exception handling best practices
- Les exceptions vérifiées peuvent être utilisées lorsqu’une méthode ne peut pas faire ce que son nom dit qu’elle fait. par exemple, une méthode nommée prepareSystem() qui pré-remplit les fichiers de configuration et effectue une configuration en les utilisant, peut déclarer lancer
FileNotFoundException
ce qui implique que la méthode utilise les fichiers de configuration du système de fichiers. - Les exceptions vérifiées ne devraient idéalement jamais être utilisées pour les erreurs de programmation, mais devraient absolument être utilisées pour les erreurs de ressources et pour le contrôle de flux dans de tels cas.,
- ne lève que les exceptions qu’une méthode ne peut gérer par aucun moyen. La méthode devrait d’abord essayer de la gérer dès qu’elle se rencontre. Ne lancez l’exception que s’il n’est pas possible de gérer la méthode inside.
- Un bon moyen de définir les signatures de méthode consiste à déclarer les exceptions proches du nom de la méthode. Si votre méthode est nommée
openFile
, il est prévu de lancerFileNotFoundException
?. Si votre méthode est nomméefindProvider
, il est prévu de lancerNoSuchProviderException
.,de plus, ce type d’exceptions doit être vérifié exceptions car il oblige l’appelant à traiter les problèmes inhérents à la sémantique de vos méthodes.
- La règle est que si on peut raisonnablement s’attendre à ce qu’un client récupère d’une exception, en faire une exception vérifiée. Si un client ne peut rien faire pour récupérer de l’exception, faites-en une exception non cochée.
en réalité, la plupart des applications devront récupérer à peu près toutes les exceptions, y compris
NullPointerException
,IllegalArgumentExceptions
et de nombreuses autres exceptions non cochées., L’action / transaction qui a échoué sera abandonnée mais l’application doit rester en vie et être prête à servir l’action / transaction suivante.la seule fois où il est normalement légal d’arrêter une application est au démarrage. Par exemple, si un fichier de configuration est manquant et que l’application ne peut rien faire de sensé sans lui, il est légal de fermer l’application.,
Conclusion
dans cet article, nous avons appris la différence entre les exceptions cochées et non cochées en Java, ainsi que la façon de gérer les exceptions non cochées, la hiérarchie des exceptions en Java avec des exemples.
N’hésitez pas à déposer vos questions dans les commentaires.
Heureux d’Apprendre !!,
- Asynchronous and synchronous exceptions
- exception handling using inner classes
- exception handling best practices
- effectively handle NullPointerException
- Custom exceptions in Java
- Java exception doc
Leave a Reply