jruby使用rescue :: System.out进行救援Exception nil

时间:2012-01-20 21:16:13

标签: jruby jrubyonrails

在Jruby脚本/控制台中,此代码的the 2nd execution上的error.class输出发生了变化。

begin
 raise "something went wrong"
rescue Java::System.out => java_error
  puts java_error.inspect
rescue Exception => error
  puts "error class: #{error.inspect}"
  puts "Why is the error class nilClass?. It should have been RuntimeError"
end

第一次输出

error class: nil
Why is the error class nilClass?. It should have been RuntimeError
=> nil

第二次,输出是

error class: #<RuntimeError: something went wrong>
Why is the error class nilClass?. It should have been RuntimeError
=> nil

看起来第一个救援区中的Java ::的使用是在第一次遇到错误时以某种方式犯错误。我在这个例子中使用了Java :: System.out,但它适用于任何java类。

环境

jruby 1.6.5 (ruby-1.8.7-p330) (2011-10-25 9dcd388) 
(Java HotSpot(TM) 64-Bit Server VM 1.6.0_26) [linux-amd64-java]

有什么想法?,@ Nick?

0 个答案:

没有答案