Проверка неявного исключения при отладке внутри блока повышения
Я использую ruby-debug, чтобы погрузиться в код, который выдает и молча ест исключения. (Код находится внутри драгоценного камня, поэтому я не хочу редактировать его напрямую без веской причины.)
Я попадаю в эту строку:
167 def catch_exceptions
168 begin
169 yield
170 rescue Exception
=> 171 rollback
172 end
173 end
174
Поскольку строка 170 не определена как rescue Exception => e
, не объявлено ни одного объекта исключения.
Есть ли способ проверки этого "неявного" объекта исключения?
1 ответ
Решение
Вы можете получить доступ к самому последнему исключению, используя глобальную переменную $!
,
Я знаю, что у вас не всегда есть выбор, но подумайте над тем, чтобы починить камень или использовать другой. Такой всеобъемлющий подход действительно плох, когда дело доходит до поиска исключений.