2010-11-24 52 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代码中冒泡,以便跟踪被抛出到屏幕上呢?