¿Existe alguna práctica recomendada para definir tipos de error personalizados en una biblioteca Ruby (gema) o una aplicación Ruby on Rails? Específicamente:
- ¿Dónde pertenecen estructuralmente en el proyecto? ¿Un archivo separado, alineado con la definición de módulo / clase relevante, en otro lugar?
- ¿Hay convenciones que establecen cuando a y cuando no a crear un nuevo tipo de error?
Las diferentes bibliotecas tienen diferentes formas de hacer las cosas, y no he notado ningún patrón real. Algunas bibliotecas siempre usan tipos de error personalizados, mientras que otras no las usan en absoluto; algunos tienen todos los errores extendiendo StandardError mientras que otros tienen jerarquías anidadas; algunos son solo definiciones de clase vacías, otros tienen todo tipo de trucos ingeniosos.
Ah, y solo porque siento que llamar a estos "tipos de error" es algo ambiguo, lo que quiero decir es esto:
class AuthenticationError < StandardError; end
class InvalidUsername < AuthenticationError; end
httparty
: github.com/jnunemaker/httparty/blob/…