Ich versuche, Ausnahmen mit AOP in Ruby zu behandeln. Das Toolkit, das ich hier benutzt habe, ist Aquarium (http://aquarium.rubyforge.org/).SystemStackError in Ruby Exception Behandlung mit Aquarium (Aspektorientierte Programmierung)
Ich habe einen Beispielcode geschrieben, der versuchen wird, alle abgeleiteten Klassen (Unterklassen) der ApplicationController-Klasse abzubilden.
Beim Ausführen des folgenden Programms, erhalte ich einen SystemStackError (ich habe auch versucht, Stack-Limit mit "ulimit -s"). Jemand bitte hilf mir dabei! Oder irgendwelche Vorschläge zum Mapping: all_methods der Unterklassen einer Oberklasse sind willkommen. Vielen Dank im Voraus.
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
Ich bin nicht sicher gefunden werden, wenn dies das Problem ist, aber Sie sollten Standarderror erhöhen und retten, als Ausnahme ziemlich schwere Fehler enthalten kann. –
Nein, auch das funktioniert nicht! –
vielleicht können Sie so etwas http://apidock.com/rails/ActiveSupport/Rescuable/ClassMethods/rescue_from verwenden? – Fivell