Exception vs erreur
Un comportement inattendu est inévitable lorsqu'un programme est en cours d'exécution. Cela peut être dû à des exceptions ou à des erreurs. Les exceptions sont des événements qui peuvent perturber le déroulement normal du programme. Les erreurs sont des conditions qui peuvent être considérées comme irrécupérables. Les exceptions sont principalement liées à l'application elle-même, tandis que les erreurs sont liées au système sur lequel le programme est exécuté..
Qu'est-ce qu'une exception?
L'exception est un événement qui peut perturber le déroulement normal du programme. L'exception de nom vient de «événement exceptionnel». Le lancement d'une exception est le processus de création d'un objet exception et de son transfert au système d'exécution. L'objet exception est créé par la méthode dans laquelle l'exception s'est produite. L'objet Exception contient des informations utiles telles que le type et la description de l'exception. Lorsque le système d'exécution reçoit l'objet exception, il essaiera de trouver quelqu'un pour le gérer dans la pile d'appels en le parcourant dans l'ordre inverse (dans lequel les méthodes ont été appelées). La pile d'appels est la liste ordonnée de méthodes, appelées avant la méthode dans laquelle l'exception s'est produite. Le système d'exécution réussit s'il trouve une méthode avec un gestionnaire d'exceptions. Le gestionnaire d'exceptions est un bloc de code capable de gérer officiellement ladite exception. Si le système d'exécution trouve un gestionnaire approprié (c'est-à-dire que le type d'exception correspond au type pouvant être géré), il passera l'objet exception au gestionnaire. Ceci s'appelle attraper l'exception. Cependant, si l’exception ne peut pas être gérée, le programme s’arrêtera. En Java, les exceptions héritent de la classe "Throwable". NullPointerException et ArrayIndexOutOfBoundsException sont deux exceptions courantes en Java..
Qu'est-ce qu'une erreur??
Une erreur est une condition qui peut être considérée comme irrécupérable, telle que le programme nécessitant une quantité de mémoire supérieure à celle disponible. Ces erreurs ne peuvent pas être traitées au moment de l'exécution. Si une erreur se produit, le programme se terminera. En Java, les erreurs héritent de la classe Throwable. Les erreurs représentent généralement des problèmes graves que le programmeur (ou l'application) ne devrait pas tenter de résoudre. Les erreurs sont simplement des conditions anormales, qui ne devraient jamais se produire dans des circonstances normales et, par conséquent, jamais prévues. Par exemple, OutOfMemoryError, StackOverflowError et ThreadDead sont de telles erreurs. Les méthodes ne doivent jamais avoir de gestionnaires pour les erreurs.
Quelle est la différence entre Exception et Error?
Les erreurs et les exceptions sont des occurrences indésirables lors de l'exécution d'un programme. Cependant, ils ont des différences clés. Des exceptions peuvent être prévues par le programmeur, alors qu'une erreur est difficile à prévoir. Les exceptions peuvent être cochées ou décochées. Mais les erreurs sont toujours décochées. Les exceptions indiquent généralement une erreur provoquée par le programmeur. Cependant, des erreurs sont dues à une erreur système ou à une utilisation inappropriée d’une ressource. Par conséquent, les exceptions doivent être gérées au niveau de l'application, tandis que les erreurs doivent être gérées au niveau du système (uniquement si possible). Après avoir traité une exception, vous êtes assuré de revenir au flux de programme normal. Mais même si une erreur est interceptée, le programmeur risque de ne pas savoir comment la gérer. Contrairement à la gestion des erreurs traditionnelle, les exceptions permettent de séparer le code de gestion des erreurs du code normal.