Recherche de suggestions/bonnes pratiques pour la gestion des codes d'erreur et des messages dans une application multi-niveaux. Plus précisément des choses comme:Approches pour la gestion des codes d'erreur et des messages dans .NET
- Où les codes d'erreur devraient-ils être définis? Enum? Classe?
- Comment les messages d'erreur ou autres détails sont-ils associés aux codes d'erreur? fichiers de ressources attributs sur les valeurs enum, etc.?
- Si vous avez une application multiniveau composée de projets DAL, BLL, UI et Common par exemple, devrait-il y avoir une seule liste de codes pour tous les niveaux, ou les codes sont-ils extensibles par projet/niveau?
Mise à jour: Il est important de mentionner que je ne peux pas compter uniquement sur les exceptions et les types d'exception personnalisés pour les rapports d'erreurs, car certains clients pour cette application seront via des services Web (SOAP & REST)
Toutes suggestions sont les bienvenues!
Merci pour l'entrée. J'ai mis à jour la question initiale pour mentionner que je ne peux pas compter uniquement sur des exceptions, car certains clients seront via des services Web, et spécifiquement des services Web REST qui n'ont pas le concept de «types d'exception». En regardant certaines des API internet (Facebook, Flickr, etc.), je pense que les codes d'erreur dans cette utilisation sont la voie à suivre. – WayneC
@WayneC: Les services Web SOAP ont accès aux fautes SOAP. Dommage que REST vous oblige à revenir au début des années 90. –
@John: Voulez-vous dire que les API REST sont les «début des années 90»? Quelqu'un de mieux dire Facebook, Flickr, Netflix, Twitter, Google, etc. qu'ils devraient avoir avec le temps! :-) Même avec l'approche de l'exception, les codes d'erreur peuvent toujours être utiles pour catégoriser davantage une exception. Par exemple, si vous avez une exception ValidationException personnalisée, vous pouvez avoir des codes d'erreur pour détailler le type de validation qui a échoué, par opposition à la création d'un nouveau type d'exception personnalisée pour chaque scénario de validation. – WayneC