logo

Exceptions vérifiées et non vérifiées en Java

En Java, exception est un événement indésirable ou inattendu, qui se produit lors de l’exécution d’un programme, c’est-à-dire au moment de l’exécution, qui perturbe le flux normal des instructions du programme.

En Java, il existe deux types d'exceptions :

  1. Exceptions vérifiées
  2. Exceptions non vérifiées

Exceptions Java vérifiées et non vérifiées



Exceptions vérifiées en Java

Ces sont les exceptions qui sont vérifiées au moment de la compilation. Si du code dans une méthode lève une exception vérifiée, alors la méthode doit soit gérer l'exception, soit spécifier l'exception à l'aide du jette mot-clé . Dans les exceptions vérifiées, il existe deux types : les exceptions entièrement vérifiées et les exceptions partiellement vérifiées. Une exception entièrement vérifiée est une exception vérifiée où toutes ses classes enfants sont également vérifiées, comme IOException et InterruptedException. Une exception partiellement vérifiée est une exception vérifiée dans laquelle certaines de ses classes enfants ne sont pas cochées, comme une exception.

java long en chaîne

Par exemple, considérons le programme Java suivant qui ouvre le fichier à l'emplacement C: esta.txt et en imprime les trois premières lignes. Le programme ne compile pas, car la fonction main() utilise FileReader() et FileReader() lève une exception vérifiée. FileNotFoundException . Il utilise également les méthodes readLine() et close(), et ces méthodes lèvent également une exception vérifiée. IOException

Exemple:

Java




// Java Program to Illustrate Checked Exceptions> // Where FileNotFoundException occurred> // Importing I/O classes> import> java.io.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Reading file from path in local directory> >FileReader file =>new> FileReader(>'C: esta.txt'>);> >// Creating object as one of ways of taking input> >BufferedReader fileInput =>new> BufferedReader(file);> >// Printing first 3 lines of file 'C: esta.txt'> >for> (>int> counter =>0>; counter <>3>; counter++)> >System.out.println(fileInput.readLine());> >// Closing file connections> >// using close() method> >fileInput.close();> >}> }>

>

>

Sortir:

Sortie de l’exception Java Checked

Pour corriger le programme ci-dessus, nous devons soit spécifier une liste d'exceptions à l'aide de lancers, soit utiliser un bloc try-catch. Nous avons utilisé des lancers dans le programme ci-dessous. Depuis FileNotFoundException est une sous-classe de IOException , on peut juste préciser IOException dans la liste des lancers et rendre le programme ci-dessus sans erreur de compilation.

Exemple:

Java

Java instancié




// Java Program to Illustrate Checked Exceptions> // Where FileNotFoundException does not occur> // Importing I/O classes> import> java.io.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >throws> IOException> >{> >// Creating a file and reading from local repository> >FileReader file =>new> FileReader(>'C: esta.txt'>);> >// Reading content inside a file> >BufferedReader fileInput =>new> BufferedReader(file);> >// Printing first 3 lines of file 'C: esta.txt'> >for> (>int> counter =>0>; counter <>3>; counter++)> >System.out.println(fileInput.readLine());> >// Closing all file connections> >// using close() method> >// Good practice to avoid any memory leakage> >fileInput.close();> >}> }>

>

>

Sortir:

First three lines of file 'C:	esta.txt'>

Exceptions non vérifiées en Java

Ce sont les exceptions qui ne sont pas vérifiées au moment de la compilation. En C++, toutes les exceptions ne sont pas cochées, le compilateur n’est donc pas obligé de gérer ou de spécifier l’exception. C'est aux programmeurs d'être civilisés et de spécifier ou d'attraper les exceptions. En Java, les exceptions sous Erreur et Exception d'exécution les classes sont des exceptions non vérifiées, tout le reste sous throwable est vérifié.

Considérez le programme Java suivant. Ça compile bien, mais ça lance ArithmétiqueException lorsqu'il est exécuté. Le compilateur lui permet de compiler car ArithmétiqueException est une exception non vérifiée.

Exemple:

Java




// Java Program to Illustrate Un-checked Exceptions> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Here we are dividing by 0> >// which will not be caught at compile time> >// as there is no mistake but caught at runtime> >// because it is mathematically incorrect> >int> x =>0>;> >int> y =>10>;> >int> z = y / x;> >}> }>

>

pas nul en js

>

Sortir

Exception in thread 'main' java.lang.ArithmeticException: / by zero at Main.main(Main.java:5) Java Result: 1>

En bref, les exceptions non vérifiées sont des exceptions d'exécution qui n'ont pas besoin d'être interceptées ou déclarées dans une clause throws. Ces exceptions sont généralement causées par des erreurs de programmation, telles que la tentative d'accès à un index hors des limites d'un tableau ou la tentative de division par zéro.

Les exceptions non cochées incluent toutes les sous-classes de la classe RuntimeException, ainsi que la classe Error et ses sous-classes.

Voici quelques exemples d'exceptions non vérifiées en Java :

1. ArrayIndexOutOfBoundsException : Cette exception est levée lorsque vous tentez d'accéder à un index de tableau hors limites.
2. NullPointerException : Cette exception est levée lorsque vous tentez d'accéder à une référence d'objet nulle.
3. ArithmétiqueException : Cette exception est levée lorsque vous tentez de diviser par zéro ou d'effectuer une opération arithmétique non valide.