El lenguaje de programación de código abierto Ruby es conocido por su sintaxis clara y facilidad de uso. Eso no significa que ganó & amp; apos; t ocasionalmente se encuentra con un mensaje de error. Una de las más irritantes es la excepción Constante no inicializada de NameError porque tiene más de una causa. La sintaxis de la excepción sigue este formato:
& lt; pre & gt; NombreError: constante no inicializada Algo
& lt; / pre & gt ;
Video destacado
o
& lt; pre & gt; NombreError: constante no inicializada Objeto :: Algo
& lt; / pre & gt ;
(donde varios nombres de clase están en lugar de Algo)
Ruby NameError Causas constantes no inicializadas
El error de Constante no inicializado es una variación de una clase de excepción regular de NameError. Tiene varias causas posibles.& amp; amp; nbsp;
- Usted y amp; apos; verán este error cuando el código se refiere a una clase o módulo que puede encontrar & amp; apos; t, a menudo porque el código no incluye & amp; apos; t incluye require , que indica el archivo Ruby para cargar la clase.
- En Ruby, las variables / métodos comienzan con letras minúsculas, mientras que las clases comienzan con letras mayúsculas. Si el código no refleja esta distinción, usted y amp; apos; recibirán la excepción Constante no inicializada.
- Otra posible causa para el & amp; amp; nbsp; NameError & amp; amp; nbsp; error es que usted & amp; apos; ha hecho un error tipográfico simple en el código.& amp; amp; nbsp;
- Ruby es sensible a mayúsculas y minúsculas, entonces & amp; TestCode & amp; quot; y & amp; quot; Testcode & amp; quot; son completamente diferentes.& amp; amp; nbsp;
- El código contiene mención de rubygems , que está en desuso en todas las versiones de Ruby, excepto en las antiguas.
Cómo corregir el error
Para solucionar problemas de su código, examínelo por las posibles causas enumeradas anteriormente una a la vez. Si encuentra un problema, diríjase a él. Por ejemplo, revise el código buscando una discrepancia en el uso en mayúsculas y minúsculas en variables y clases.& amp; amp; nbsp; si encuentra uno y lo corrige, su problema probablemente esté resuelto. Si es & amp; apos; t, continúe por las otras causas posibles, fijándose a medida que avanza.
Si la clase a la que se refiere en el código está en otro módulo, consulte con su nombre completo de esta manera:
& lt; pre & gt; #!/ usr / bin / env rubymodule MyModule class MyClass; endendc = MyModule :: MyClass.new
& lt; / pre & gt ;
Acerca de las excepciones Ruby
Las excepciones son cómo Ruby llama su atención sobre los problemas en el código. Cuando se encuentra un error en el código, an & amp; amp; nbsp; exception es & amp; quot; raised & amp; quot; o & amp; quot; thrown & amp; quot; y el programa se apaga por defecto.
Ruby publica una jerarquía de excepciones con clases predefinidas. Los errores de nombre están en la clase StandardError, junto con RuntimeError, ThreadError, RangeError, ArgumentError y otros. Esta clase incluye la mayoría de las excepciones normales que encuentra en los programas típicos de Ruby.
& amp; # x203A; Informática