Exception vérifiée par rapport à l'exception d'exécution
Les exceptions sont des événements de type spécial, qui peuvent perturber le déroulement normal du programme. L'exception de nom vient de «événement exceptionnel». Lancer une exception consiste à créer un objet d'exception et à le transmettre au système d'exécution. 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 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 qui peut officiellement gérer ladite exception. Si le système d'exécution trouve un gestionnaire approprié, il transmettra l'objet d'exception au gestionnaire. Cela s'appelle intercepter l'exception. Toutefois, si l'exception ne peut pas être traitée, le programme se terminera. En Java,les exceptions héritent de la classe Throwable. Les exceptions cochées sont des exceptions sur lesquelles la gestion est appliquée 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 des objets de la classe java.lang.exception ou de ses sous-classes (à l'exception de java.lang. RuntimeException et de ses sous-classes). Les exceptions vérifiées sont «vérifiées» au moment de la compilation. Cela signifie que le programmeur doit soit attraper ou lever ces exceptions, sinon la compilation se plaindrait (provoquant une erreur de compilation). 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 est en train d'accéder ou de modifier un fichier, le compilateur vérifie que toutes les exceptions IOExceptions possibles sont prises en charge par le programmeur.
Qu'est-ce qu'une exception d'exécution?
Les exceptions d'exécution se composent de java.lang. RuntimeException et de toutes ses sous-classes. Théoriquement parlant, 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 indésirables lors de l'exécution d'un programme, elles ont leurs différences. La gestion des exceptions vérifiées est appliqué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 soit compilé, mais il n'y a aucune exigence de ce type concernant 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 le faire. Ainsi, si le programmeur lève simplement une nouvelle exception sans encapsuler l'original, la trace de pile appartenant à l'exception d'origine sera perdue. C'est là que les exceptions d'exécution sont utiles. Étant donné que toutes les exceptions d'exécution peuvent être gérées en un seul endroit, les programmeurs peuvent écrire moins de code. D'un autre côté, puisque les exceptions vérifiées doivent être interceptées, il n'y a pas de surprise pour le programmeur. Elle saura toujours quelle exception vérifié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.