紅寶石名稱錯(cuò)誤的原因:未初始化的常數(shù)錯(cuò)誤

開源編程語言Ruby以其清晰的語法和易用性而聞名。這并不意味著你會(huì)'t偶爾會(huì)遇到錯(cuò)誤消息。最棘手的問題之一是名稱錯(cuò)誤未初始化的常量異常,因?yàn)樗卸喾N原因。例外的語法遵循以下格式:

 NameError:未初始化的c

 NameError:未初始化的常數(shù)

(其中各種班級(jí)名稱代替了東西)

Ruby NameError Uninitialized Constant Causes

未初始化的常量錯(cuò)誤是常規(guī)名稱錯(cuò)誤異常類的變體。它有幾個(gè)可能的原因。

  • You'當(dāng)代碼引用一個(gè)可以't查找的類或模塊時(shí),通常因?yàn)榇a不't包含require,它指示Ruby文件加載類。
  • 在Ruby中,變量/方法以小寫字母開頭,而類以大寫字母開頭。如果代碼沒有't反映這種區(qū)別,您'將收到未初始化的常量異常。
  • 名稱錯(cuò)誤的另一個(gè)可能原因是您've做了一個(gè)簡單的拼寫錯(cuò)誤。
  • Ruby是區(qū)分大小寫的,所以"TestCode"and"TestCode"完全不同。
  • 代碼中提到了rubygems,除舊版本的Ruby外,其他所有版本都不使用。

如何修復(fù)錯(cuò)誤

要排除代碼故障,請(qǐng)一次檢查上面列出的可能原因。如果您發(fā)現(xiàn)問題,請(qǐng)解決。例如,瀏覽代碼,尋找變量和類的大寫和小寫用法的差異。如果找到并糾正它,您的問題可能會(huì)解決。如果它是't,繼續(xù)通過其他可能的原因,隨時(shí)修復(fù)。

如果您在代碼中提到的課程是在另一個(gè)模塊中,請(qǐng)使用以下全名引用它:

#!/usr/bin/env rubymodule MyModule類MyClass;endendc=MyMo

關(guān)于紅寶石例外

例外情況是Ruby如何將注意力集中在代碼中的問題上。當(dāng)遇到代碼中的錯(cuò)誤時(shí),異常是"升高"或"投擲"程序默認(rèn)關(guān)閉。

Ruby發(fā)布具有預(yù)定義類的異常層次結(jié)構(gòu)。NameErrors屬于StandardError類健康營養(yǎng)小知識(shí)大全集,以及RuntimeError,ThreadError,RangeError,argenterror等。本課程包括您在典型Ruby程序中遇到的大多數(shù)正常例外情況。

科普_1