我在第三方库中遇到异常。由于某种原因,回溯会跳过很多行。我把它放在初始化器中了:
Rails.backtrace_cleaner.remove_silencers!
Rails.backtrace_cleaner.remove_filters!
这些行无效。
还有什么可能会影响回溯的内容?是否有我可以检查的全局对象,或者我可以在可疑宝石中搜索的方法调用?
我正在使用JRuby,Rails 4.1,有问题的库是dullard。
进一步说明
这是一个回溯正常工作的例子。这段代码......
def a
raise "i am in a"
end
def b
puts "i am in b"
a
end
def c
puts "i am in c"
b
end
c
导致此输出...
➔ ruby exceptiontest.rb
i am in c
i am in b
exceptiontest.rb:2:in `a': i am in a (RuntimeError)
from exceptiontest.rb:7:in `b'
from exceptiontest.rb:12:in `c'
from exceptiontest.rb:15:in `<main>'
我的问题是,我正在获得此输出...
➔ ruby exceptiontest.rb
i am in c
i am in b
exceptiontest.rb:2:in `a': i am in a (RuntimeError)
from exceptiontest.rb:15:in `<main>'
答案 0 :(得分:0)
pry
,在回溯的感兴趣行之前放置一个binding.pry
语句。您将能够看到异常时发生的事情,如果有必要,您将能够cd
进一步了解。