7
votes

Pourquoi les exceptions d'exécution sont-elles "non cochées" en Java?

Pourquoi est-il logique d'avoir des exceptions d'exécution non cochées (par opposition à s'ils étaient vérifiés )?


0 commentaires

3 Réponses :


19
votes

Si vous n'avez pas besoin que vous n'ayez pas besoin d'essayer / capturer des blocs chaque fois que vous avez accédé à un élément de tableau, une opération de division et de nombreux autres scénarios courants »

Pour le mettre un autre moyen, imaginez ce code: xxx

devrait vérifier "code> classcastexception , arrayindexoutofboundSException , arithméticepxception , non pris en charge / Code> et NullPointerException Juste hors du haut de ma tête.

avec Java Le problème n'est pas corrigé d'exceptions. Les exceptions vérifiées sont un sujet très controversé. Certains disent que c'était en grande partie une expérience avec Java et dans la pratique, ils ne fonctionnent pas, mais vous trouverez beaucoup de personnes qui font valoir qu'ils sont bons.

Personne ne se disputent des exceptions non cochées sont mauvaises cependant.


2 commentaires

"Personne ne fait que discuter des exceptions non cochées sont mauvaises" - vous seriez surpris :-) Big +1 sur tout le reste, cependant.


En fait, si l'exception d'exécution a été vérifiée, il serait difficile de manipuler des exceptions de toute façon, car presque tout ce que vous pouviez faire dans le bloc de capture pourrait entraîner de nouvelles exceptions d'exécution qui auraient à leur tour être manipulée ...



1
votes

Cela signifie simplement que le compilateur ne vous obligera pas à rechercher une exception, mais vous pouvez toujours le jeter au moment de l'exécution. Comme un avantage, cela vous permet de jeter de nouvelles exceptions à partir de vos classes sans vous demander de modifier votre interface, ce qui oblige les appelants à modifier leur code.


0 commentaires

9
votes

L'idée des deux types d'exceptions à l'exception de Java (cochée et non cochée) est que des exceptions vérifiées doivent être utilisées pour des conditions d'erreur pouvant être raisonnablement attendues de se produire, et des exceptions non cochées doivent être utilisées pour des conditions d'erreur inattendues.

Par exemple, si un fichier n'est pas trouvé, vous obtenez un filenotfoundexception , et il est raisonnable de vous attendre à ce que votre programme puisse gérer une telle condition. Des exceptions non cochées ne doivent être utilisées que pour des problèmes qui ne devraient pas arriver, et cela signifie vraiment qu'il existe un bogue dans le programme si un tel problème se produit. Par exemple, un NullPointerException signifie que votre programme essaie de désirer une variable null et c'est probablement un bug.

Le compilateur Java oblige le programmateur à gérer des exceptions vérifiées. Cela rend le langage de programmation plus sûr - cela signifie que le programmeur est obligé de penser aux conditions d'erreur, ce qui devrait rendre le programme plus robuste.

Le compilateur ne vérifie pas les exceptions non vérifiées, car les exceptions non cochées ne sont pas censées se produire de toute façon et s'ils le font, il n'y a rien que le programme puisse raisonnablement faire au moment de l'exécution; Le programmeur doit résoudre le bogue.

Il y a eu une critique à cette fonctionnalité de Java, certaines personnes appellent même des exceptions cochées une expérience échouée et certaines personnes propose Pour supprimer des exceptions vérifiées de Java.


0 commentaires