我有以下代碼:紅寶石與電子表格被陷在異常
require 'spreadsheet'
class MyObject
def initialize
@workbook = Spreadsheet::open('foo.xls', 'r')
end
end
h = MyObject.new
h.inexistent
運行它,紅寶石(1.9.2p290 [I386-的mingw32])將打印「test.rb:10:in '<main>'
」,然後開始連續吃起來RAM直到它被殺死。
顯然,這是異常消息「test.rb:10:in '<main>': undefined method 'inexistent' for #<MyObject:0xfb5140> (NoMethodError)
」的開始。
如果沒有拋出異常,程序將正常終止。
什麼可能導致這種奇怪的行爲?
請注意,inexistent
不存在。這是有意爲了演示拋出異常時的行爲。
您使用的是什麼版本的電子表格寶石? xls文件有多大,是由gem還是通過Excel創建的?你能否成功加載文件並直接在irb中使用電子表格查看它? – Khronos
@Kronos:它是0.6.5.9(最近的一個)。 XLS體積小巧,使用Excel創建。我可以成功加載並讀取Ruby(腳本或irb) - 只要沒有引發異常。 –