J’ai étudié cela: avec une exception non contrôlée, cependant, le compilateur ne force pas les programmeurs clients à attraper l’exception ou à la déclarer dans une clause throws. En fait, les programmeurs clients peuvent même ne pas savoir que l’exception peut être levée. Par exemple, SsortingngIndexOutOfBoundsException
levée par la charAt()
de Ssortingng.
qu’est-ce que cela signifie?
Selon ce code, il n’est pas nécessaire de mettre try catch dans le code, mais j’ai déjà vu des contraintes du compilateur pour insérer le code dans try catch block.
Je suis très confus ce qu’ils sont exactement?
Les exceptions non RuntimeException
sont celles qui étendent la classe RuntimeException
. Le compilateur ne vous obligera jamais à intercepter une telle exception ou à la déclarer dans la méthode à l’aide du mot clé throws. Tous les autres types d’exception (qui ne prolongent pas RuntimeException
) sont vérifiés et doivent donc être déclarés comme étant levés et / ou interceptés.
Les exceptions cochées sont utilisées lorsque vous voulez que l’appelant de votre méthode (c’est-à-dire l’utilisateur de votre API) gère explicitement le cas exceptionnel de votre API. Les exceptions cochées sont déclarées lorsque vous pensez que l’appel sera en mesure de faire quelque chose de significatif dans ce cas exceptionnel, par exemple, relancer l’appel, annuler les modifications ou le convertir en message d’erreur lisible par l’utilisateur.
Si vous pensez qu’il n’y a rien d’utile que l’appel puisse faire à propos de l’exception (surtout s’il s’agit d’un bogue ou d’une utilisation incorrecte de votre API), alors l’exception doit être décochée. Aussi, une API avec trop d’exceptions vérifiées peut être ennuyeuse à programmer (par exemple, essayez d’utiliser une API de reflection Java =).
Quelle est votre question exactement? Les compilateurs ne devraient pas (et ne vont pas) vous obliger à essayer / attraper des exceptions non vérifiées, cela irait à l’encontre de ce qu’elles sont.
L’idée générale est que les exceptions vérifiées sont quelque chose que vous pouvez prévoir, mais qui peuvent être basées sur une entrée qui est hors de votre contrôle et que vous devez gérer. Les exceptions non contrôlées représenteront généralement des bogues dans votre programme.
Un certain nombre de personnes pensent que les exceptions vérifiées sont une erreur de la plate-forme Java et ne les utilisent que très peu ou pas du tout. Vous pouvez en savoir plus sur ce débat en effectuant une recherche sur Google.
C’est parce que,
Vérifiez les liens suivants:
Pourquoi les exceptions d’exécution sont décochées?
Vérifié par rapport à une exception non vérifiée?