Dois-je déclarer des exceptions non contrôlées dans la spécification des projections?

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.