Проверка неявного исключения при отладке внутри блока повышения

Я использую 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 ответ

Решение

Вы можете получить доступ к самому последнему исключению, используя глобальную переменную $!,

Я знаю, что у вас не всегда есть выбор, но подумайте над тем, чтобы починить камень или использовать другой. Такой всеобъемлющий подход действительно плох, когда дело доходит до поиска исключений.

Другие вопросы по тегам