Det öppna källkodsprogrammet Ruby är känt för sin tydliga syntax och användarvänlighet. Det betyder inte att du inte ibland kommer att stöta på ett felmeddelande. En av de mest irriterande är undantag för NameError Uninitialized Constant eftersom det har mer än en orsak. Syntaxen för undantaget följer detta format:
NameError: uninitialized constant Något
eller
NameError: uninitialized constant Object :: Något
(där olika klassnamn finns i stället för Något)
Det oinitialiserade konstantfelet är en variant av en vanlig undantagsklass för NameError. Det har flera möjliga orsaker.
Om du vill felsöka din kod ska du granska den för eventuella orsaker som anges ovan en åt gången. Om du hittar ett problem, adressera det. Gå till exempel igenom koden och letar efter en skillnad i stora och små bokstäver på variabler och klasser. Om du hittar en och rättar till det är problemet troligt löst. Om det inte är det, fortsätt med de andra möjliga orsakerna, fixa som du går.
Om klassen du hänvisar till i koden finns i en annan modul, hänvisar du till den med dess fulla namn som denna:
#! / usr / bin / env rubymodule MyModule class MyClass; endendc = MyModule :: MyClass.new
Undantag är hur Ruby uppmärksammar problem i koden. När ett fel i koden uppstår "undviks" eller "kastas" undantag och programmet stängs av som standard.
Ruby publicerar ett undantagshierarki med fördefinierade klasser. NameErrors finns i klassen StandardError tillsammans med RuntimeError, ThreadError, RangeError, ArgumentError och andra. Denna klass innehåller de flesta vanliga undantag som du stöter på i typiska Ruby-program.