Ruby异常跟踪

时间:2015-01-05 23:21:47

标签: 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

     

引发ArgumentError

但我只得到

  

第3行my_module.rb

     

引发ArgumentError

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

1 个答案:

答案 0 :(得分:4)

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

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