Je comprends que "les Exceptions sont pour des cas exceptionnels," [a], mais en plus il suffit d'être répété plus et plus encore une fois, je n'ai jamais trouvé une vraie raison de ce fait.
Qu'ils arrête d'exécution, il est logique que vous ne voudrais pas pour eux de la plaine de la logique conditionnelle, mais pourquoi pas une validation de l'entrée?
Dire que vous avez été à la boucle par le biais d'un groupe d'entrées et de prendre chaque exception de les regrouper pour la notification de l'utilisateur... je ne cesse de voir que c'est en quelque sorte "mauvais" parce que les utilisateurs entrent incorrect d'entrée de tous les temps, mais le point de départ semble être basée sur la sémantique.
L'entrée n'est Pas ce qui a été prévu et est donc exceptionnelle. Lancer une exception me permet de définir exactement ce qui n'allait pas comme StringValueTooLong ou ou IntegerValueTooLow ou InvalidDateValue ou quoi que ce soit. Pourquoi est-ce considéré comme mauvais?
Des Alternatives à lancer une exception est de retour (et éventuellement recueillir) un code d'erreur ou pire une erreur de chaîne de caractères. Ensuite, je voudrais montrer ce soit ceux des chaînes d'erreur directement, ou d'analyser les codes d'erreur et de montrer ensuite les messages d'erreur correspondants à l'utilisateur. Ne serait pas une exception, être considéré comme une malléable code d'erreur? Pourquoi créer une table des codes et messages d'erreur, lorsque celles-ci pourraient être généralisées à l'exception de la fonctionnalité déjà intégrée dans ma langue?
Aussi, j'ai trouvé cet article de Martin Fowler à la manière de gérer ces choses - la Notification du motif. Je ne suis pas sûr de la façon dont je vois cela comme autre chose que des Exceptions qui ne sont pas interrompre l'exécution.
a: Partout je n'ai rien lu à propos des Exceptions.
--- Edit ---
Beaucoup de grands points ont été faites. J'ai commenté sur la plupart des et +d les bons points, mais je ne suis pas encore tout à fait convaincu.
Je ne veux pas faire l'avocat des Exceptions comme le moyen le plus adapté pour résoudre de Validation de la Saisie, mais je voudrais trouver de bonnes raisons pourquoi la pratique est considérée comme tellement mal quand il semble que la plupart des solutions de rechange sont juste des Exceptions dans le déguisement.