2012-05-22 20 views
0

我正在使用ruby-debug来深入抛出并静静地执行异常的代码。 (该代码是一个宝石里面,所以我厌恶直接编辑它没有一个非常好的理由。)在调试块内部调试时检查隐式异常

我得到这一行:

167  def catch_exceptions 
    168   begin 
    169   yield 
    170   rescue Exception 
=> 171   rollback 
    172   end 
    173  end 
    174 

随着管线170没有被定义为rescue Exception => e ,没有声明异常对象。

有没有办法检查这个“隐式”异常对象?

回答

3

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

我知道你并不总是有选择,但考虑修复宝石或使用不同的。当涉及到追查异常时,这种全方位的方法确实很糟糕。