Mon cas spécifique ici est que l'utilisateur peut passer une chaîne dans l'application, qu'elle analyse et l'assigne à des objets structurés. Parfois, l'utilisateur peut taper quelque chose d'invalide. Par exemple, leurs commentaires peuvent décrire une personne, mais ils peuvent dire que leur âge est "pomme". Le comportement correct dans ce cas est d'annuler la transaction et d'indiquer à l'utilisateur qu'une erreur s'est produite et qu'il devra réessayer. Il peut être nécessaire de signaler toutes les erreurs que nous pouvons trouver dans l'entrée, pas seulement la première.
Dans ce cas, j'ai soutenu que nous devrions lancer une exception. Il a exprimé son désaccord en disant: "Les exceptions devraient être exceptionnelles: il est prévu que l'utilisateur puisse saisir des données non valides, ce n'est donc pas un cas exceptionnel" Je ne savais pas vraiment comment argumenter, car, par définition, il semble avoir raison.
Mais je crois comprendre que c’est la raison pour laquelle Exceptions a été inventée. Auparavant, vous deviez examiner le résultat pour voir si une erreur s'était produite. Si vous omettez de vérifier, de mauvaises choses peuvent arriver sans que vous vous en rendiez compte.
Sans exception, chaque niveau de la pile doit vérifier le résultat des méthodes qu'il appelle et si un programmeur oublie de vérifier l'un de ces niveaux, le code pourrait accidentellement être utilisé et enregistrer des données non valides (par exemple). Cela semble plus sujet aux erreurs de cette façon.
Quoi qu'il en soit, n'hésitez pas à corriger tout ce que j'ai dit ici. Ma question principale est de savoir si quelqu'un dit que les exceptions doivent être exceptionnelles, comment savoir si mon cas est exceptionnel?