Получение списка существующих классов ошибок Rails для повторного использования / наследования

Часто мне нужно выдать нестандартную (размерную) ошибку. Например, когда ресурс не может быть найден из-за несоответствия параметров или около того.

Я предпочитаю выдавать существующие ошибки или выдавать ошибку, унаследованную от существующей ошибки. Таким образом, я не представляю уже определенные классы ошибок, которые можно было бы использовать без ошибок (DRY). Но это также позволяет сохранить формулировку и стиль одинаковыми, унаследовав и просто изменив одно или два слова, чтобы прояснить разницу с исходной ошибкой.

Например:

Foo.new
Foo.some_external_id = nil
Foo.fetch_external_resource
# => InvalidOptions: Calling Foo#fetch_external_resource with nil is invalid

Я совершенно уверен, что такие ошибки уже определены. Фактически, после прочтения многих строк кода я обнаружил, что мой драйвер MongoID имеет Mongoid :: Errors :: InvalidOptions: Вызов документа # find с nil недопустим .

Есть ли список доступных классов ошибок в Ruby Core и Ruby on Rails? Есть ли способ получить такой список для вашего текущего проекта?

Разумно ли повторно использовать и / или наследовать существующие ошибки, или я должен вместо этого поддерживать свой собственный, настраиваемый набор?

21
задан casperOne 20 December 2011 в 14:36
поделиться