【问题标题】:Jruby Stack TracesJruby 堆栈跟踪
【发布时间】:2010-11-24 20:42:37
【问题描述】:

所以这可能是一个愚蠢的问题,但我不知道该问什么,因为用 google 搜索的“jruby 打印堆栈跟踪”并没有提供多少有价值的信息,但是,

在编写访问抛出异常的 Java 类的 Jruby 代码时,如何打印堆栈跟踪?即现在我从其他人那里获取代码,看起来像

rescue JavaSql::SQLException puts "SQLException" end

哪个有效,但我想看看发生了哪个特定的 SQLException,就像在 Java 中那样(即 PrintStackTrace(Exception e))?如何做到这一点?

【问题讨论】:

    标签: java sql jdbc jruby


    【解决方案1】:

    我从未在 Ruby 中处理过 Java 异常,但 AFAIK,Java 异常作为 Ruby 异常呈现给您,这意味着您可以通过向异常对象发送 :message 消息来获取异常消息:

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

    这就是你的意思吗?我不太确定在这种特殊情况下您需要堆栈跟踪来做什么,所以我可能误解了。

    【讨论】:

    • 哎呀,是的,这正是我的意思。非常感谢!我对 Jruby 和 Java 之间的交互方式有点陌生。
    【解决方案2】:

    可以想象它依赖于底层实现。如果底层实现只是吞下异常,您将无法看到堆栈跟踪。另外,为什么不让异常在您的 ruby​​ 代码中冒泡,以便跟踪被抛出到屏幕上?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-25
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-11
      • 2018-09-19
      • 2016-12-17
      相关资源
      最近更新 更多