Existe uma prática recomendada para definir tipos de erro personalizados em uma biblioteca Ruby (gem) ou aplicativo Ruby on Rails? Especificamente:
- Onde eles pertencem estruturalmente ao projeto? Um arquivo separado, alinhado com a definição de módulo / classe relevante, em outro lugar?
- Existem quaisquer convenções que estabelecem quando para e quando para não criar um novo tipo de erro?
Bibliotecas diferentes têm maneiras diferentes de fazer as coisas, e eu não notei nenhum padrão real. Algumas bibliotecas sempre usam tipos de erro personalizados, enquanto outras não os usam; alguns têm todos os erros que estendem o StandardError enquanto outros têm hierarquias aninhadas; alguns são apenas definições de classe vazias, outros têm todo tipo de truques inteligentes.
Ah, e só porque sinto que chamar esses "tipos de erro" é meio ambíguo, o que quero dizer é o seguinte:
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
httparty
: github.com/jnunemaker/httparty/blob/…