Existe-t-il une meilleure pratique pour définir des types d'erreurs personnalisés dans une bibliothèque Ruby (gem) ou une application Ruby on Rails ? Plus précisément :
- Quelle est leur place structurelle dans le projet ? Dans un fichier séparé, en ligne avec la définition du module/de la classe concerné(e), quelque part ailleurs ?
- Existe-t-il des conventions qui établissent quand à et quand ne pas créer un nouveau type d'erreur ?
Les bibliothèques ont des façons de faire différentes, et je n'ai pas remarqué de véritables modèles. Certaines bibliothèques utilisent toujours des types d'erreurs personnalisés tandis que d'autres ne les utilisent pas du tout ; certaines ont toutes les erreurs qui étendent StandardError tandis que d'autres ont des hiérarchies imbriquées ; certaines sont juste des définitions de classes vides, d'autres ont toutes sortes d'astuces astucieuses.
Oh, et juste parce que j'ai l'impression que les appeler "types d'erreurs" est un peu ambigu, ce que je veux dire c'est ceci :
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end