Je sais que les exceptions cochées doivent être gérées ou spécifiées, mais les exceptions non cochées sont facultatives.
Si, pour une raison quelconque, je peux raisonnablement m’attendre à une exception non vérifiée dans une méthode, devrais-je l’append à la spécification de jetons? Ou devrais-je garder la spécification aussi courte que possible?
Si, pour une raison quelconque, je peux raisonnablement espérer qu’une exception non contrôlée se produise dans une méthode, dois-je l’append à la spécification des projections?
Comme les exceptions non vérifiées indiquent des erreurs de programmation , leur déclaration dans la clause throws devrait être évitée. En règle générale, vous ne devez pas capturer ces exceptions, sauf pour le niveau le plus élevé de votre programme. Il y a quelques exceptions (jeu de mots) à cette règle – par exemple, dans le code de production, vous devriez attraper NumberFormatException
.
Remarque: Parfois, les auteurs de framework font que leur exception de base hérite de RuntimeException
(par exemple, HibernateException
). Des exceptions comme celle-ci devraient également être sockets.
C’est une décision de conception. Normalement, vous ne feriez pas ça. Mais si vous pensez qu’il est crucial que l’utilisateur de votre code détecte une Exception
, alors c’est un moyen de le lui suggérer. Une autre solution consisterait simplement à l’append à la documentation et à expliquer pourquoi il est important de détecter l’ Exception
.
La déclaration explicite dans throws-clause n’est pas nécessaire car il s’agit d’exceptions à l’exécution, mais vous devriez la documenter dans javadoc pour que les utilisateurs puissent voir dans quelles circonstances cette exception peut se produire et ce que cela signifie.