我并不是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