Exception vs Erreur
Un comportement inattendu est obligé de se produire lorsqu'un programme est en cours d'exécution. Cela pourrait être dû à des exceptions ou des erreurs. Les exceptions sont des événements, ce qui peut perturber le flux de programme normal. 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 s'exécute.
Qu'est-ce qu'une exception?
L'exception est un événement, qui peut perturber le flux de programme normal. L'exception du nom provient de «l'événement exceptionnel». Jeter une exception est le processus de création d'un objet d'exception et de le remettre au système d'exécution. L'objet d'exception est créé par la méthode dans laquelle l'exception s'est produite. L'objet d'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 d'exception, il essaiera de trouver quelqu'un pour le gérer dans la pile d'appels en le traversant dans l'ordre inverse (dans lequel les méthodes ont été appelées). La pile d'appels est la liste ordonnée des méthodes, qui ont été 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 qui peut officiellement gérer ladite exception. Si le système d'exécution trouve un gestionnaire approprié (i.e. Le type d'exception correspond au type qui peut être géré), il passera l'objet d'exception au gestionnaire. C'est ce qu'on appelle attraper l'exception. Cependant, si l'exception ne peut pas être gérée, le programme se terminera. En Java, les exceptions héritent de la classe lancinable.'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, comme le programme nécessitant une quantité de mémoire plus grande que ce qui est disponible. Ces erreurs ne peuvent pas être géré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 lancinable. Les erreurs représentent généralement de graves problèmes que le programmeur (ou l'application) ne devrait pas essayer d'attraper. Les erreurs sont simplement des conditions anormales, qui ne devraient jamais se produire dans des circonstances normales, et donc jamais prévu. Par exemple, OutOfMemoryError, Stackoverflowerror et ThreadDead sont de telles erreurs. Les méthodes ne devraient jamais avoir de gestionnaires pour les erreurs.
Quelle est la différence entre l'exception et l'erreur?
Les erreurs et les exceptions sont indésirables lors de l'exécution d'un programme. Cependant, ils ont des différences clés. Les exceptions peuvent être prévues par le programmeur, tandis qu'une erreur est difficile à prévoir. Les exceptions peuvent être vérifiées ou non contrôlées. Mais les erreurs ne sont toujours pas contrôlées. Les exceptions indiquent généralement une erreur causée par le programmeur. Cependant, des erreurs se produisent en raison d'une erreur système ou d'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 prises en charge au niveau du système (seulement si possible). Après avoir géré une exception, vous êtes assuré de revenir à un flux de programme normal. Mais même si une erreur est prise, le programmeur peut ne pas savoir comment le gérer en premier lieu. Contrairement à la gestion traditionnelle des erreurs, les exceptions permettent de séparer le code de manutention des erreurs du code ordinaire.