Ответ 1
Я иду с app/models/model_name/exceptions.rb
, сохраняя их внутри модуля.
При создании собственных пользовательских исключений, таких как
class ThingExploded < StandardError; end
class ThingIsMissing < StandardError; end
Где хорошее место для хранения? Я рассматривал lib/exceptions.rb... и также размышлял, было бы более уместно каким-то образом приблизиться к коду, который их использует.
Я иду с app/models/model_name/exceptions.rb
, сохраняя их внутри модуля.
Я бы, вероятно, пошел с lib/exceptions/thing_exploded.rb, чтобы сохранить каждый класс в отдельном файле.
Если ваши исключения не настолько серьезны, их нельзя освобождать, а подклассификация их из Exception
не подходит.
Исключения, такие как fatal
и NoMemoryError
, являются подклассами Exception, поэтому, если у вас есть код, например rescue Exception
для обработки ThingExploded
и ThingIsMissing
, вы будете спасать всевозможные вещи, которые лучше всего остался один.
Лучше подклассифицировать их вместо StandardError
.