【问题标题】:How can I force Ruby to show a full stack trace? [duplicate]如何强制 Ruby 显示完整的堆栈跟踪? [复制]
【发布时间】:2010-09-27 16:50:02
【问题描述】:

我刚刚收到此错误消息:

...
from c:/ruby/lib/ruby/gems/1.8/gems/...
 ... 10 levels...
from c:/ruby/lib/ruby/gems/1.8/gems/...
...

并且该错误(当然)隐藏在 ... 10 levels... 的某处。

如何强制 Ruby 显示完整的堆栈跟踪?

【问题讨论】:

    标签: ruby stack-trace


    【解决方案1】:
    begin
      # Code that raises exception
    rescue StandardError => e
      puts e.backtrace
    end
    

    【讨论】:

    • 如何在不捕获异常的情况下显示堆栈跟踪?就是在正常操作中。
    • @ChiragPatel,也许你想使用Kernel#caller
    • Kernel#caller,正如 Sony Santos 所提到的,绝对是你想要的。它将返回一个字符串数组。您可以轻松地执行以下操作以在日志中获得整洁的堆栈跟踪: Rails.logger.info caller.join("\n")
    • 默认情况下,救援处理 StandardError 而不是 Exception。所以你宁愿拯救 StandardError。见robots.thoughtbot.com/rescue-standarderror-not-exception
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 2012-07-18
    • 2016-10-05
    • 2013-09-20
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    相关资源
    最近更新 更多