在raise块内调试时检查隐式Exception

时间:2012-05-22 06:34:37

标签: ruby exception ruby-debug

我正在使用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 个答案:

答案 0 :(得分:3)

您可以使用全局变量$!访问最新的异常。

我知道你并不总是有选择,但考虑修理宝石或使用不同的宝石。在追踪异常时,这种全能方法非常糟糕。