[英]stack level too deep (SystemStackError) — Unsure Why I get this error
我從運行整個程序的主文件中調用兩個文件,當我運行主文件main.rb時會遇到以下錯誤,即handlers.rb和core.rb。
handlers.rb:4: stack level too deep (SystemStackError)
當我運行handlers.rb時,我遇到相同的錯誤。
core.rb:6: stack level too deep (SystemStackError)
core.rb有
require 'mail'
require 'json'
load './handlers.rb'
handlers.rb有
require 'twilio-ruby'
require 'json'
load './core.rb'
require 'mail'
我不明白為什么會出現這些錯誤,有什么想法嗎? 謝謝
您正在遞歸使用load
方法。 加載不像require
那樣, require
確實會讓您只包含一次文件,而load
會使您多次包含文件。
文件core.rb和handler.rb互相引用並帶有load
。
“堆棧級別太深”始終表示遞歸調用。
例如:
def foo
foo
end
如果在irb中調用此命令,則會得到:
SystemStackError:堆棧級別太深
在代碼中,您遞歸地加載兩個文件。 load()不喜歡那樣。 當您需要require()時,我也建議這樣做
優先決定僅一個文件應加載另一個文件,然后僅保留該一個加載,而不保留另一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.