De open-source programmeertaal Ruby staat bekend om zijn duidelijke syntaxis en gebruiksgemak. Dat betekent niet dat je niet af en toe een foutmelding tegenkomt. Een van de meest irritante is de uitzondering NameError Uninitialized Constant omdat deze meer dan één oorzaak heeft. De syntaxis van de uitzondering volgt dit formaat:
NameError: niet-geïnitialiseerde constante Something
of
NameError: niet-geïnitialiseerde constante Object :: Something
(waar verschillende klassennamen in plaats van staan Iets)
De fout Uninitialized Constant is een variatie op een reguliere uitzonderingsklasse NameError. Het heeft verschillende mogelijke oorzaken.
Als u problemen met uw code wilt oplossen, onderzoekt u deze een voor een voor de hierboven genoemde mogelijke oorzaken. Als u een probleem vindt, kunt u dit oplossen. Doorloop bijvoorbeeld de code op zoek naar een verschil in hoofd- en kleine letters bij variabelen en klassen. Als u er een vindt en deze corrigeert, is uw probleem waarschijnlijk opgelost. Als dit niet het geval is, gaat u door met de andere mogelijke oorzaken en lost u dit op.
Als de klasse waarnaar u in de code verwijst zich in een andere module bevindt, moet u ernaar verwijzen met de volledige naam als volgt:
#! / usr / bin / env rubymodule MyModule-klasse MyClass; endendc = MyModule :: MyClass.new
Uitzonderingen zijn hoe Ruby uw aandacht vestigt op problemen in de code. Wanneer een fout in de code wordt aangetroffen, wordt een uitzondering "opgeworpen" of "gegooid" en wordt het programma standaard afgesloten.
Ruby publiceert een uitzonderingshiërarchie met vooraf gedefinieerde klassen. NameErrors behoren tot de klasse StandardError, samen met RuntimeError, ThreadError, RangeError, ArgumentError en andere. Deze klasse bevat de meeste normale uitzonderingen die u tegenkomt in typische Ruby-programma's.