Przyczyny błędu nazwy Ruby: niezainicjowany stały błąd

Mężczyzna w okularach korzystający z laptopa

Kultura RM Exclusive/Stefano Gilera/Getty Images





Język programowania open-source Rubin jest znany ze swojej przejrzystej składni i łatwości użycia. Nie oznacza to, że od czasu do czasu nie pojawi się komunikat o błędzie. Jednym z najbardziej irytujących jest wyjątek NameError Uninitialized Constant, ponieważ ma on więcej niż jedną przyczynę. Składnia wyjątku jest zgodna z następującym formatem:

|_+_|

lub



|_+_|

(gdzie różne nazwy klas są w miejsce Coś)

Ruby NameBłąd Niezainicjowane stałe przyczyny

Błąd niezainicjowanej stałej jest odmianą regularnego Klasa wyjątku NameError . Ma kilka możliwych przyczyn.



  • Ten błąd zostanie wyświetlony, gdy kod odwołuje się do klasy lub modułu, którego nie może znaleźć, często dlatego, że kod nie zawiera wymagać , który instruuje plik Ruby, aby załadować klasę.
  • W Ruby zmienne/metody zaczynają się od małych liter, podczas gdy klasy zaczynają się od wielkich liter. Jeśli kod nie odzwierciedla tego rozróżnienia, otrzymasz wyjątek niezainicjowanej stałej.
  • Jeszcze inną możliwą przyczyną błędu NameError jest prosta literówka w kodzie.
  • Ruby rozróżnia wielkość liter, więc 'TestCode' i 'Testcode' są zupełnie inne.
  • Kod zawiera wzmiankę o klejnoty rubinowe , który jest przestarzały we wszystkich wersjach Rubiego oprócz starych.

Jak naprawić błąd

Aby rozwiązać problem z kodem, sprawdź go pojedynczo pod kątem możliwych przyczyn wymienionych powyżej. Jeśli znajdziesz problem, rozwiąż go. Na przykład przejrzyj kod, szukając rozbieżności w użyciu wielkich i małych liter w zmiennych i klasach. Jeśli go znajdziesz i naprawisz, prawdopodobnie Twój problem zostanie rozwiązany. Jeśli tak nie jest, przejdź do innych możliwych przyczyn, naprawiając je na bieżąco.

Jeśli klasa, do której odwołujesz się w kodzie, znajduje się w innym module, podaj jej pełną nazwę w następujący sposób:

|_+_|

Informacje o wyjątkach dla rubinów

Wyjątkiem jest to, jak Ruby zwraca twoją uwagę na problemy w kodzie. W przypadku napotkania błędu w kodzie wyjątek jest „zgłaszany” lub „rzucany”, a program jest domyślnie zamykany.

Ruby publikuje hierarchię wyjątków z predefiniowanymi klasami. NameErrors znajdują się w klasie StandardError, wraz z RuntimeError, ThreadError, RangeError, ArgumentError i innymi. Ta klasa zawiera większość normalnych wyjątków, które napotykasz w typowych programach Rubiego.