Différence entre l'exception vérifiée et l'exception d'exécution

Différence entre l'exception vérifiée et l'exception d'exécution
Différence entre l'exception vérifiée et l'exception d'exécution

Vidéo: Différence entre l'exception vérifiée et l'exception d'exécution

Vidéo: Différence entre l'exception vérifiée et l'exception d'exécution
Vidéo: FTP, SFTP et FTPS pour les débutants 2024, Juillet
Anonim

Exception vérifiée vs exception d'exécution

Les exceptions sont des types particuliers d'événements, qui peuvent perturber le déroulement normal du programme. Le nom exception vient de « événement exceptionnel ». La levée d'une exception est le processus de création d'un objet d'exception et de sa transmission au système d'exécution. Lorsque le système d'exécution reçoit l'objet exception, il essaie de trouver quelqu'un pour le gérer dans la pile des 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 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 Throwable. Les exceptions cochées sont des exceptions dont 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 ?

Checked Les exceptions sont soit 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 intercepter, soit lever ces exceptions, sinon la compilation se plaindra (provoquant une erreur du compilateur). Pour cette raison, de nombreuses exceptions vérifiées sont très bien connues des programmeurs. Par exemple, l'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 toutes les IOExceptions possibles sont prises en charge par le programmeur.

Qu'est-ce qu'une exception d'exécution ?

Runtime Exceptions se compose 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 gérées comme des exceptions vérifiées, mais leur gestion n'est pas imposée 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 l'exception vérifiée et l'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 les exceptions d'exécution ne le sont pas. 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'existe 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 contrôlées avec les erreurs.

L'inconvénient des exceptions cochées est que le programmeur doit le gérer même s'il ne sait pas comment le faire. Ainsi, si le programmeur lance simplement une nouvelle exception sans envelopper 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 à un seul endroit, les programmeurs peuvent écrire moins de code. D'autre part, 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 lancée par une certaine méthode. Contrairement à cela, diverses exceptions d'exécution peuvent être levées à l'insu du programmeur.

Conseillé: