只是一个简单的问题。我无法在文档中找到它。
如果我使用标准begin ... rescue
,如何将所有错误或堆栈跟踪打印到救援中?
e.g:
begin
do x
rescue
puts errors
end
有什么想法吗?
答案 0 :(得分:74)
我知道至少有两种方法可以解决错误。第一个是使用全局变量:$!始终设置为发生的最后一个错误。第二个是在救援时明确捕获错误:
begin
# do something that fails...
rescue => error
# error and $! are equivalent here
end
任何一个都可以使用以下任一方法检查或打印回溯:
$!.backtrace # => array of backtrace steps
error.backtrace # => same error