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

我有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行my_module.rb

论证错误


我该怎么做才能看到完整的跟踪?

试试
$@
。包含最后一个异常的回溯跟踪(最后一个异常对象位于
$!
中)


另一种解决方案是使用更好的RubyShell,在其中您可以通过
wtf看到回溯命令(感叹号越多,将显示更多的回溯)

Mb,这是一个很好的解决方案。但为什么当你使用一些著名的库,如rack或activerecord时,你可以看到所有东西的完整痕迹呢?我希望我的图书馆也这样做!或者,我应该捕获并抛出所有的东西和所有的地方?我不是100%确定你的意思,但我认为这里的问题是你在irb中调用你的方法,这会抑制一些回溯,而rack和activerecord会把它吐得到处都是。请看另一个问题中指出的
调用方