J'ai étudié que: avec une exception non cochée, cependant, le compilateur ne force pas les programmeurs clients pour capter l'exception ou le déclarer dans une clause de lancers. En fait, les programmeurs clients peuvent même ne pas savoir que l'exception pourrait être lancée. Par exemple, Qu'est-ce que sa moyenne? p>
Selon ce code, il n'est pas nécessaire de mettre essayer un bloc de capture dans le code,
Mais j'ai vu des forces compilatrices à mettre le code dans l'essai de capture. P>
Je suis très confus ce qu'ils sont exactement? p> stringindexoutofboundSException code> lancé par la chaîne
charat () code> méthode. p>
7 Réponses :
Quelle est votre question exactement? Les compilateurs ne devraient pas (et ne voudront pas) que vous souhaitez essayer / attraper des exceptions non cochées, cela contribuerait exactement ce qu'ils sont. P>
L'idée générale est que des exceptions vérifiées sont quelque chose que vous pourriez être en mesure de prévoir, mais peut être basée sur une entrée qui est hors de votre contrôle et que vous devez traiter. Des exceptions non cochées représenteront généralement des bugs dans votre programme. P>
Il y a un certain nombre de personnes qui pensent que des exceptions vérifiées sont une erreur dans la plate-forme Java et ils ne les utilisent que très bien ou pas du tout. Vous pouvez en savoir plus sur ce débat en recherchant Google. P>
Des exceptions non cochées sont celles qui étendent Des exceptions vérifiées sont utilisées lorsque vous souhaitez que l'appelant de votre méthode (c'est-à-dire l'utilisateur de votre API) pour gérer explicitement le cas exceptionnel de votre API. exceptions sont déclarées cochés lorsque vous croyez que l'appel sera en mesure de faire quelque chose de significatif avec ce cas exceptionnel, comme Retrying l'appel, le laminage des changements en arrière ou le convertir en un certain message d'erreur lisible par l'utilisateur. p>
Si vous croyez qu'il n'y a rien d'utile que l'appel peut faire à propos de l'exception (surtout lorsqu'il représente un bogue ou une mauvaise utilisation de votre API), l'exception doit être décochée. En outre, une API avec trop d'exceptions vérifiées peut être gênante pour programmer avec (par exemple, essayer d'utiliser API de réflexion Java =) P> RunTimeException code> classe. Le compilateur ne vous obligera jamais à attraper une telle exception ou à vous forcer à la déclarer dans la méthode utilisant
jette code> mot-clé. Tous les autres types d'exception (qui ne prolongent pas
RunTimeException code>) sont vérifiés et doivent donc être déclarés pour être levés et / ou attrapés. P>
Des exceptions s'étendant à partir d'une "erreur" sont également décochées.
c'est parce que, p>
Vérifiez les liens suivants: P>
Pourquoi les exceptions d'exécution sont décochées?
Vérifié vs exception non cochée? p>
C'est l'inverse. Lorsqu'une excprétion est la défaillance des programmeurs, elle devrait être décochée. C'est plutôt inutile de attrape code> un bug au lieu de la fixer. Si ce n'est pas la défaillance des programmeurs mais causée par un paramètre externe (par exemple une erreur de réseau), elle doit être vérifiée.
trompeur! b> Quelqu'un peut-il avoir suffisamment de représentant pour modifier s'il vous plaît réparer cela?
J'ai soumis une correction et il est en attente d'examen par les pairs.
Ma correction a été rejetée car elle a changé la signification fondamentale de la réponse. @sgokhales, vous devez corriger ou supprimer cette réponse.
ioexception code> qui est lancé lorsqu'un fichier ne peut pas être ouvert. Ces exceptions se produisent même s'il n'y a rien de mal avec le programme. Il est donc nécessaire de dire au programme comment gérer l'exception. Li>
- Les exceptions non cochées sont utiles pour identifier les défauts dans le code. Par exemple, un
nullpointException code> est lancé lorsqu'une valeur est lue sur un objet null code> null code>. Ainsi, une exception non cochée représente un problème qui nécessite une solution manuelle par le programmeur. Il est raisonnable que le programme de s'écraser pour éviter un comportement erroné, un bloc de capture essentielle n'est donc pas nécessaire (mais pourrait être souhaitable afin de fournir des mesures d'atténuation, telles que l'affichage d'une erreur à l'utilisateur). li>
ul>
Un exemple évident de l'utilité des exceptions vérifiées est l'utilisation des appels d'API qui accèdent / dépendent des ressources qui peuvent ne pas toujours être présentes - essentiellement Java.io, entre autres. Étant donné que ces situations de panne peuvent et doivent être anticiquées (généralement, capturées avec une réponse intelligente des messages d'erreur, au moins), en appliquant que la fardeau minimum de la gestion des exceptions sur le programmeur est une bonne pratique.
Exceptions qui doivent être vérifiées ou manipulées ou doivent être prises en charge au moment de la rédaction du code des exceptions cochées. Pour par exemple: 1. Nous avons FilenotFoundException -> qui sera survenu lorsque nous écrivons du code relatif aux classes de fichiers. Il y aura clairement la possibilité de non existence de fichier. Dans ce cas afin de les gérer, nous sommes obligés de gérer ces exceptions à l'exception. 2. Un exemple de plus est la parseException, qui sera survenue lorsque nous traitons des fonctions de date. P>
Ce sont les exceptions facultatives à traiter pendant le temps de codage. C'est à nous que nous traitons ou non. Si nous ne manquons pas de les gérer, il est possible d'obtenir des erreurs d'exécution pendant l'exception. Pour par exemple: Nous avons quelque chose appelé NullPointerException, Arthemeticepxception, NossuchelementFoundException et ainsi de suite. Ce sont comme des choses facultatives que nous n'avons même pas à les gérer. Plus sur Même JVM ou Compiler ne nous recommanderont pas de les gérer. ** P>
Toutes les exceptions font partie du temps d'exécution et ne compilent pas l'heure. Il existe deux types d'exceptions à l'exception des exceptions vérifiées et des exceptions non contrôlées. Des exemples d'exceptions vérifiées sont des exceptions de l'IO, une exception de classeNotfound et des exemples d'exceptions non cochées sont des exceptions d'exécution. Dans le cas des exceptions vérifiées, une erreur ou un message d'avertissement est synonyme de compilation de manière à ce que l'utilisateur s'en occupe au moment de l'exécution en utilisant des mots-clés de lancement, qui permet d'exercer des exceptions au système de mécanisme de capture par défaut. Mais en cas d'exception non cochée, l'avertissement n'est pas là au moment de la compilation. P>
en mots simples, p>
Utilisez la même règle même en créant vos exceptions personnalisées. P>