Просто быстрый вопрос. Я не могу найти его в документации.
Если я использую стандартный begin ... rescue, как распечатать все ошибки или трассировку стека в спасение?
например:.
begin
do x
rescue
puts errors
end
Любые идеи?
Ответ 1
Есть, по крайней мере, два способа, которые я знаю, чтобы получить ошибку. Первая использует глобальную переменную: $! который всегда установлен на последнюю произошедшую ошибку. Во-вторых, путем явного захвата ошибки при спасении:
begin
# do something that fails...
rescue => error
# error and $! are equivalent here
end
Любой из них позволит вам проверить или распечатать обратную линию, используя либо:
$!.backtrace # => array of backtrace steps
error.backtrace # => same error