2012-05-22 46 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

您可以使用全局變量$!訪問最新的異常。

我知道你並不總是有選擇,但考慮修復寶石或使用不同的。當涉及到追查異常時,這種全方位的方法確實很糟糕。