Exception cochée vs exception d'exécution
Les exceptions sont des types d'événements particuliers qui peuvent 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. 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). 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é, 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. Les exceptions cochées sont des exceptions pour lesquelles le traitement est imposé par le compilateur. Les exceptions d'exécution sont un type d'exceptions, qui ne sont pas vérifiées par le compilateur.
Qu'est-ce qu'une exception vérifiée??
Les exceptions cochées sont soit des objets de la classe java.lang.exception ou ses sous-classes (à l'exception de java.lang.RuntimeException et de ses sous-classes). Les exceptions cochées sont «cochées» au moment de la compilation. Cela signifie que le programmeur doit attraper ou lancer ces exceptions, sinon la compilation se plaindrait (provoquant une erreur du compilateur). Pour cette raison, de nombreuses exceptions vérifiées sont très bien connues des programmeurs. Par exemple, l’exception IOException et ses sous-classes sont des exceptions vérifiées, et chaque fois que le programmeur s’occupe d’accéder ou de modifier un fichier, le compilateur vérifie que le programmeur s’occupe de toutes les exceptions IO possibles..
Qu'est-ce qu'une exception d'exécution??
Les exceptions d'exécution sont constituées de java.lang.RuntimeException et de toutes ses sous-classes. Théoriquement, elles ont le même objectif que les exceptions vérifiées et peuvent être levées ou traitées comme des exceptions vérifiées, mais leur traitement n'est pas imposé par le compilateur. Par conséquent, les exceptions d'exécution appartiennent à la famille des exceptions non contrôlées. NullPointerException, NumberFormatEception, ClassCastException et ArrayIndexOutOfBoundsException sont des exceptions d'exécution courantes en Java..
Quelle est la différence entre une exception vérifiée et une exception d'exécution??
Bien que les exceptions vérifiées et les exceptions d'exécution soient des occurrences non désirées lors de l'exécution d'un programme, elles ont leurs différences. La gestion des exceptions cochées est imposée par le compilateur, mais pas les exceptions d'exécution. Par conséquent, les exceptions vérifiées doivent être levées ou gérées pour que le code puisse être compilé, mais aucune exigence de ce type ne concerne les exceptions d'exécution. Par conséquent, les exceptions d'exécution appartiennent à la catégorie des exceptions non vérifiées avec les erreurs.
L'inconvénient des exceptions vérifiées est que le programmeur doit le gérer même s'il ne sait pas comment s'y prendre. Ainsi, si le programmeur lève simplement une nouvelle exception sans envelopper l'original, la trace de pile appartenant à l'exception d'origine sera perdue. C'est ici que les exceptions d'exécution sont utiles. Toutes les exceptions d'exécution pouvant être gérées à un seul endroit, les programmeurs peuvent écrire moins de code. Par contre, étant donné que les exceptions vérifiées doivent être interceptées, le programmeur n’a pas de surprise. Elle saura toujours quelle exception cochée pourrait être levée par une certaine méthode. Contrairement à cela, diverses exceptions d'exécution peuvent être levées à l'insu du programmeur.