Czy istnieje najlepsza praktyka definiowania niestandardowych typów błędów w bibliotece Ruby (gem) lub aplikacji Ruby on Rails? Konkretnie:
- Gdzie strukturalnie przynależą do projektu? Oddzielny plik, wstawiony z odpowiednią definicją modułu / klasy, gdzieś indziej?
- Czy są jakieś konwencje, które tworzą kiedy do kiedy nie tworzyć nowy rodzaj błędu?
Różne biblioteki mają różne sposoby działania i nie zauważyłem żadnych prawdziwych wzorców. Niektóre biblioteki zawsze używają niestandardowych typów błędów, podczas gdy inne w ogóle ich nie używają; niektóre mają wszystkie błędy rozszerzające StandardError, podczas gdy inne mają zagnieżdżone hierarchie; niektóre są po prostu pustymi definicjami klas, inne mają różne sprytne sztuczki.
Aha, i tylko dlatego, że mam ochotę nazywać te „typy błędów”, jest to trochę niejednoznaczne, mam na myśli to:
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
httparty
: github.com/jnunemaker/httparty/blob/…