Вывод ошибок при спасении (Ruby / Rails) - PullRequest
51 голосов
/ 01 сентября 2011

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

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

Например:

begin 
    do x
rescue
    puts errors
end

Есть идеи?

1 Ответ

75 голосов
/ 01 сентября 2011

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

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

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

$!.backtrace # => array of backtrace steps
error.backtrace # => same error
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...