Différence entre Exception et Error en java
Quelle est la différence entre Exception et Error en java ? – La classe java.lang.Error et java.lang.Exception les deux sont des sous-classes de la classe java.lang.Throwable, mais il existe des différences significatives entre elles.
Définition de la classe Error
La classe java.lang.Error représente les erreurs principalement causées par l’environnement d’exécution de l’application. Par exemple, OutOfMemoryError se produit lorsque il y a un dépassement de mémoire dans la JVM ou que StackOverflowError se produit lorsque des débordements de pile.
Définition de la classe Exception
La classe java.lang.Exception représente les exceptions principalement causées par l’application elle-même. Par exemple, NullPointerException se produit lorsqu’une application tente d’accéder à un objet nul, et l’exception ClassCastException se produit lorsqu’une application tente de convertir des types de classe incompatibles.
Les exceptions sont traitées en utilisant les mots-clés try, catch, throw. La syntaxe de l’écriture d’une exception est la suivante:
try { //... } Catch (Exception type) { //... }
Si l’exception se produit dans un bloc try, elle est lancée à l’aide du mot clé throw. L’exception lancée peut être interceptée par le bloc catch du code ci-dessus. type est le type de l’exception qui s’est produite.
Différences clés entre Exception et Error
- En cas d’exception, nous pouvons le gérer en utilisant le bloc try/catch. Si une erreur se produit, nous ne pouvons pas la gérer, l’exécution du programme sera terminée.
- Une erreur se produit uniquement lorsque les ressources du système sont déficientes alors qu’une exception est provoquée si un code présente un problème.
- Une erreur ne peut jamais être récupérée alors qu’une exception peut être récupérée en préparant le code pour gérer l’exception.
- Si une erreur est survenue, le programme sera terminé de manière anormale. En revanche, si l’exception se produit, le programme lancera une exception et le traitera à l’aide du bloc try/catch.
- Les erreurs sont de type non contrôlé, c’est-à-dire que les compilateurs ne connaissent pas l’erreur, tandis qu’une exception est classée comme vérifiée et non contrôlée.
- Les erreurs sont définies dans java.lang.Error alors que les exceptions sont définies dans java.lang.Exception.
- Les exceptions sont liées à l’application, tandis que les erreurs sont liées à l’environnement dans lequel l’application est exécutée.
Conclusion
« Exception » et « Error » sont des sous-classes de la classe java.lang.Throwable. Nous pouvons gérer les exceptions à l’exécution, mais les erreurs nous ne pouvons pas y gérer.