在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?