Подтвердить что ты не робот

Вывод ошибок при спасении (Ruby/Rails)

Просто быстрый вопрос. Я не могу найти его в документации.

Если я использую стандартный begin ... rescue, как распечатать все ошибки или трассировку стека в спасение?

например:.

begin 
    do x
rescue
    puts errors
end

Любые идеи?

4b9b3361

Ответ 1

Есть, по крайней мере, два способа, которые я знаю, чтобы получить ошибку. Первая использует глобальную переменную: $! который всегда установлен на последнюю произошедшую ошибку. Во-вторых, путем явного захвата ошибки при спасении:

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

Любой из них позволит вам проверить или распечатать обратную линию, используя либо:

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