在救援中输出错误(Ruby / Rails)

时间:2011-09-01 12:12:40

标签: ruby-on-rails ruby exception

只是一个简单的问题。我无法在文档中找到它。

如果我使用标准begin ... rescue,如何将所有错误或堆栈跟踪打印到救援中?

e.g:

begin 
    do x
rescue
    puts errors
end

有什么想法吗?

1 个答案:

答案 0 :(得分:74)

我知道至少有两种方法可以解决错误。第一个是使用全局变量:$!始终设置为发生的最后一个错误。第二个是在救援时明确捕获错误:

begin
  # do something that fails...
rescue => error
  # error and $! are equivalent here
end

任何一个都可以使用以下任一方法检查或打印回溯:

$!.backtrace # => array of backtrace steps
error.backtrace # => same error