Checked vs Exception non contrôlée

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,

  1. Les exceptions non contrôlées ne résultent pas d’une faute du programmeur. Au lieu de cela, ce sont les conséquences graves pour lesquelles nous (programmeurs) ne devrions pas en faire grand chose.
  2. En cas d’exception cochée, il s’agit d’une exception générée en raison d’une erreur du programmeur et pouvant souvent être résolue par le programmeur lui-même.

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?

  • Les exceptions non contrôlées sont générées à cause d’une erreur de programmation. Ils ne sont pas toujours pris par le programme car ils nécessitent généralement un changement du programmeur pour être corrigés.
  • Checked Les exceptions ne sont pas le résultat d’une erreur de programmation. Au lieu de cela, ils se produisent dans le fonctionnement normal d’un programme. Un exemple serait une exception IOException émise lorsqu’un fichier ne peut pas être ouvert. Étant donné que ces exceptions se produisent même s’il n’y a aucun problème avec le programme, il est nécessaire d’indiquer au programme comment gérer l’exception.