我並不是Ruby中的專家,但我試圖在某些腳本中跟蹤該問題並且無法聯繫到專家在這個特定的腳本,以瞭解我們爲什麼會收到此錯誤。我已經縮小了這個特定功能的範圍,並且從我可以告訴的範圍來看,第一個打印語句會發生,但結束打印語句不會。Ruby 1.9.3:創建新對象時收到堆棧級別太深的錯誤
def load_power_ports(io_info)
return if !io_info
io_info.each_key do |key|
print key
if [email protected]_controllers[key.to_s.downcase]
@power_controllers[key.to_s.downcase] = Object.const_get($equipment_table['power_controller'][key.to_s.downcase][0].driver_class_name).new($equipment_table['power_controller'][key.to_s.downcase][0])
end
end
print "end of equipment power block"
rescue Exception => e
raise e.to_s + "\nUnable to create power controller: " + io_info.to_s
end
打印語句只看到被傳遞哪些信息,如何將節目遠遠獲取和執行的迭代:堆棧層次過深的錯誤,只有當這個函數存在如下到底會發生。
你需要做的第一件事就是把這行代碼分成更小的行。那麼也許你可以找到破裂的路線。 – atw13 2013-03-28 01:35:53
你能否在你的描述中給出錯誤堆棧,這將有助於更多的調查? – 2013-03-28 04:37:02
我實際上能夠通過最終實現對driver_class_name的調用真的在做什麼來解決它。謝謝! @ Iiya-O幫我清理了一下我的頭腦。 – Sarah 2013-03-28 14:20:34