Ruby异常跟踪
我有Ruby函数,如下所示:Ruby异常跟踪,ruby,exception,raise,Ruby,Exception,Raise,我有Ruby函数,如下所示: module MyModule def function raise ArgumentException if true end end 然后,我在另一些嵌套函数中使用这个函数,就像 def upperfunction MyModule::function end 所以,如果我在irb中调用upperfunction,我希望看到完整的跟踪,比如 第2行upperfunction.rb 第3行my_module.rb 论证错误 但我只有 第3
module MyModule
def function
raise ArgumentException if true
end
end
然后,我在另一些嵌套函数中使用这个函数,就像
def upperfunction
MyModule::function
end
所以,如果我在irb中调用upperfunction,我希望看到完整的跟踪,比如
第2行upperfunction.rb
第3行my_module.rb
论证错误
但我只有
第3行my_module.rb
论证错误
我该怎么做才能看到完整的跟踪?试试
$@
。包含最后一个异常的回溯跟踪(最后一个异常对象位于$!
中)
另一种解决方案是使用更好的RubyShell,在其中您可以通过
wtf看到回溯代码>命令(感叹号越多,将显示更多的回溯)Mb,这是一个很好的解决方案。但为什么当你使用一些著名的库,如rack或activerecord时,你可以看到所有东西的完整痕迹呢?我希望我的图书馆也这样做!或者,我应该捕获并抛出所有的东西和所有的地方?我不是100%确定你的意思,但我认为这里的问题是你在irb中调用你的方法,这会抑制一些回溯,而rack和activerecord会把它吐得到处都是。请看另一个问题中指出的调用方