Recommandé, 2024

Choix De L'Éditeur

Différence entre les exceptions cochées et non cochées en Java

“Throwable” est la classe parente des classes Error et Exception. La classe “RuntimeException” et ses sous-classes, la classe “Error” et ses classes enfants sont les “Exceptions non vérifiées”, tandis que les sous-classes restantes de la classe “Exception” à l'exception de “RuntimeException” sont les exceptions vérifiées. La différence fondamentale entre les exceptions vérifiées et non vérifiées est que les exceptions vérifiées sont vérifiées par le compilateur, tandis que le compilateur ne vérifie pas les exceptions non vérifiées.

Discutons des autres différences entre les exceptions cochées et les exceptions non contrôlées à l'aide du tableau de comparaison.

Tableau de comparaison

Base de comparaisonException cochéeException non contrôlée
De baseLe compilateur vérifie l'exception vérifiée.Le compilateur ne vérifie pas l'exception Unchecked.
Classe d'exceptionÀ l'exception de la classe "RuntimeException", toutes les classes enfant de la classe "Exception", ainsi que la classe "Error" et ses classes enfant, constituent une exception cochée.La classe "RuntimeException" et ses classes enfants sont des "exceptions non contrôlées".
ManipulationSi nous ne gérons pas l'exception vérifiée, les objets du compilateur.Même si nous ne gérons pas l'exception non contrôlée, le compilateur ne fait pas d'objection.
CompilationLe programme ne compile pas s'il existe une exception vérifiée non gérée dans le code du programme.Le programme est compilé avec succès même s'il existe une exception non contrôlée non gérée dans le code du programme.

Définition de l'exception vérifiée

Les exceptions vérifiées sont les exceptions vérifiées par le compilateur pour le bon déroulement du programme. Le compilateur vérifie si le programme peut gérer l'exception vérifiée ou non. Si le code ne parvient pas à gérer l'exception, une erreur de compilation se produit. Toutes les sous-classes de la classe «Exception», à l'exception de la classe RuntimeException, sont les exceptions vérifiées.
Laissez-nous étudier l'exception vérifiée avec un exemple.

 importer java.io. *; class Exemple {public static void main (String args []) {FileInputStream fis = null; fis = new FileInputStream ("B: /myfile.txt"); // Ce constructeur FileInputStream (File filename) lève une exception FileNotFoundException, qui est une exception vérifiée. int k; while ((k = fis.read ())! = -1) {// La méthode read () de la classe FileInputStream lève également une exception vérifiée: IOException. System.out.print ((char) k); } fis.close (); // La méthode close () ferme le flux d'entrée du fichier qu'elle lève avec IOException. }} 

Dans le code ci-dessus, nous essayons d’ouvrir, de lire et d’afficher le contenu du fichier. Il peut arriver que le fichier ne soit pas présent, une exception FileNotFoundException se produira, qui est une exception vérifiée. Si l'exception cochée n'est pas gérée, le compilateur ne permettra pas la compilation du programme en douceur. Il affichera une erreur de compilation. Ainsi, pour que la compilation se déroule sans encombre, l’exception vérifiée doit être capturée ou déclarée comme étant levée.

Définition de l'exception non contrôlée

Les exceptions non contrôlées sont les exceptions qui ne sont pas vérifiées par le compilateur. Le compilateur compile le programme avec succès même si les exceptions ne sont pas gérées par le code. La classe “Error” et ses classes enfants, la classe “Runtime” et ses sous-classes sont les exceptions non contrôlées.

Voyons un exemple d'exception non contrôlée.

 classe Exemple {public static void main (String args []) {int arr [] = {1, 2, 3, 4, 5}; System.out.println (arr [7]); // ArrayIndexOutOfBoundsException. }} 

Dans le code ci-dessus, vous pouvez voir qu'il existe une exception ArrayIndexOutOfBoundsException, car j'essaie d'accéder à l'élément qui n'existe pas. Comme il s'agit d'une exception non contrôlée, aucune erreur de compilation ne surviendra et le fichier sera compilé sans erreur. Mais le programme ne s'exécutera pas tant que l'exception ne sera pas gérée. Donc, pour une exécution en douceur, les exceptions doivent être capturées ou déclarées comme étant jetées.

Principales différences entre les exceptions cochées et non cochées

  1. Les exceptions cochées sont dans la connaissance du compilateur alors que les exceptions non cochées ne le sont pas.
  2. À l'exception des classes RuntimeException et Error, toutes les classes sont vérifiées exception. D'autre part, les classes RuntimeException et Error sont des exceptions non contrôlées.
  3. Si les exceptions cochées ne sont pas gérées par le code, les objets du compilateur. D'autre part, si nous ne gérons pas les exceptions non vérifiées dans le code, le compilateur ne s'oppose pas.
  4. Si des exceptions cochées se produisent dans le code, le code ne sera pas compilé, tandis que même si les exceptions non cochées ne sont pas gérées par le code, le compilateur compile toujours le code.

Remarque :

Les exceptions cochées ou non cochées se produisent obligatoirement pendant l'exécution. Ils sont uniquement cochés ou décochés par le compilateur pendant la compilation.

Conclusion:

Les exceptions cochées et non cochées doivent être gérées afin d'exécuter le programme en douceur.

Top