2010-11-24 82 views
0

所以這可能是一個愚蠢的問題,但我不知道要問什麼以來一派沒有拿出多少值得多數民衆贊成,但「JRuby的打印堆棧跟蹤」,JRuby的棧跟蹤

怎樣一個打印編寫訪問引發異常的Java類的Jruby代碼時的堆棧跟蹤?即現在我把代碼別人看起來像

rescue JavaSql::SQLException puts "SQLException" end

其工作原理,但我想看到哪個特定的SQLException正在發生的事情像我這一點在Java(即的printStackTrace(例外五)) ?如何做到這一點?

回答

3

我從來沒有與Ruby的Java異常的工作,但據我所知,Java異常得到呈現給你的Ruby異常,這意味着您可以通過發送:message消息異常對象得到異常的消息:

begin 
    # stuff 
rescue JavaSql::SQLException => e 
    puts "#{e.class}: #{e.message}" 
end 

這是你的意思嗎?我不太清楚在這種情況下你需要堆棧跟蹤,所以我可能會誤解。

+0

哎呀,是的,這正是我的意思。非常感謝!我對Jruby和Java如何與其他人互動有點新。 – daidoji70 2010-11-24 21:58:29

0

可以想象它依賴於底層實現。如果底層實現只是吞下異常,您將無法看到堆棧跟蹤。另外,爲什麼你不讓這個異常在你的ruby代碼中冒泡,以便跟蹤被拋出到屏幕上呢?