Ruby 异常跟踪

Ruby exception trace

我有Ruby函数,像这样:

module MyModule
  def function
    raise ArgumentException if true
  end
end

然后,我在其他一些嵌套函数中使用这个函数,就像

def upperfunction
   MyModule::function
end

所以,如果我在 irb 中调用 upperfunction,我想看到像

这样的完整跟踪

line 2 upperfunction.rb

line 3 my_module.rb

ArgumentError

但我只得到

line 3 my_module.rb

ArgumentError

我应该怎么做才能看到完整的轨迹?

尝试$@。其中包含最后一个异常的回溯(最后一个异常对象在 $! 中)。

另一种解决方案是使用更好的 ruby shell、pry,您可以在其中使用 wtf! 命令查看回溯(感叹号越多, 将显示更多的回溯)