2ord
@2ord

Как отлавливать все внутренние исключения фреймворка RoR?

Есть ли какой-то способ отлавливать только те внутренние исключения, которые используются самим фреймворком RoR, но не в других фреймворках? Допустим, ActionController::RoutingError, и многие другие. Может, у них есть общий предок?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
По поводу предков, используя метод ancestors можно выдвинуть предположение, что конкретно у ActionController::RoutingError базовый рельсовый класс ActionController::ActionControllerError (который уже восходит к рубишному StandardError).

2.3.1 :029 > ActionController::RoutingError.ancestors
 => [ActionController::RoutingError, 
ActionController::ActionControllerError, 
StandardError, Exception, ActiveSupport::Dependencies::Blamable, 
Object, PP::ObjectMixin, ActiveSupport::Dependencies::Loadable, 
V8::Conversion::Object, 
JSON::Ext::Generator::GeneratorMethods::Object, 
Kernel, 
BasicObject]


Но я уверен, что у других компонентов Rails есть свои родительские exception-классы, а может даже и не один. Например, у ActiveRecord есть ActiveRecord::ActiveRecordError.
Возможно вам придётся пройтись по исходникам рельсы и поискать классы, наследующиеся от StandardError.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы