Il linguaggio di programmazione open source Ruby è noto per la sua sintassi chiara e facilità d'uso. Ciò non significa che non ti imbatterai occasionalmente in un messaggio di errore. Uno dei più fastidiosi è l'eccezione Costante non inizializzata NameError perché ha più di una causa. La sintassi dell'eccezione segue questo formato:
NameError: costante non inizializzata Something
o
NameError: oggetto costante non inizializzato :: Something
(dove al posto di vari nomi di classe Qualcosa)
L'errore Costante non inizializzata è una variazione di una normale classe di eccezione NameError. Ha diverse possibili cause.
Per risolvere il codice, esaminalo per le possibili cause elencate sopra una alla volta. Se trovi un problema, risolvilo. Ad esempio, passare attraverso il codice alla ricerca di una discrepanza nell'uso maiuscolo e minuscolo su variabili e classi. Se ne trovi uno e lo correggi, il tuo problema è probabilmente risolto. In caso contrario, continua attraverso le altre possibili cause, risolvendo mentre procedi.
Se la classe a cui fai riferimento nel codice si trova in un altro modulo, fai riferimento ad essa con il suo nome completo come questo:
#! / usr / bin / env rubymodule MyModule class MyClass; endendc = MyModule :: MyClass.new
Le eccezioni sono il modo in cui Ruby attira la tua attenzione sui problemi del codice. Quando si verifica un errore nel codice, viene generata un'eccezione "sollevata" o "generata" e il programma si spegne per impostazione predefinita.
Ruby pubblica una gerarchia di eccezioni con classi predefinite. NameErrors sono nella classe StandardError, insieme a RuntimeError, ThreadError, RangeError, ArgumentError e altri. Questa classe include la maggior parte delle normali eccezioni riscontrate nei programmi tipici di Ruby.