Я пытаюсь обрабатывать исключения, используя АОП в Ruby. Инструментарий, который я здесь использовал, называется Aquarium (http://aquarium.rubyforge.org/).
Я написал пример кода, который попытается отобразить всех записанных потомков (подклассов) класса ApplicationController.
При выполнении следующей программы я получаю SystemStackError (я также пытался установить лимит стека с помощью «ulimit -s»). Кто-нибудь, пожалуйста, помогите мне с этим! Или любые предложения по отображению: all_methods подклассов суперкласса приветствуются. Заранее спасибо.
require 'aquarium'
include Aquarium::Aspects
class ApplicationController
end
class Abc < ApplicationController
def func
puts "func called"
raise Exception.new # SystemStackError is thrown before reaching place
end
end
#Dummy class
class Def < ApplicationController
end
Aspect.new :after_raising => Exception,
:in_types_and_descendents => "ApplicationController" do |jp, object, *args|
puts "Exception Handling Code"
end
a = Abc.new
a.func