Zum Hauptinhalt springen

Referenz häufiger Laufzeitfehler bei der Entwicklung

Teil der FehlermeldungUrsacheVorgehensweise
attempt to perform arithmetic on aVersuch, eine mathematische Operation mit einem Nicht-Zahlenwert auszuführen (+, -, *, /)Vor der mathematischen Operation prüfen, ob alle Eingaben Zahlen sind.
attempt to compareVersuch, einen unzulässigen Wert zu vergleichen (>, <, >=, <=)Vor dem Vergleich prüfen, ob beide Eingaben verglichen werden können.
attempt to concatenate aVersuch, einen Nicht-String zu verketten (..)Vor der Stringverkettung sicherstellen, dass beide Seiten Strings sind.
attempt to call aVersuch, eine Variable aufzurufen, die keine Funktion istVor dem Funktionsaufruf sicherstellen, dass es sich um eine Funktion handelt.
attempt to index aVersuch, einen Nicht-Tabellenwert zu indizieren (Indexoperation)Vor dem Lesen aus einem Array oder einer assoziativen Tabelle sicherstellen, dass der Wert eine Tabelle ist.
attempt to yield across a C-call boundaryVersuch, innerhalb eines nicht freigebbaren Aufrufblocks die Ausführung abzugebenBeim require eines Moduls sicherstellen, dass das von require geladene Modul vor seiner Rückgabe keine Funktion aufruft, die die Ausführung abgeben kann (im Handbuch mit einem Ausrufezeichen markiert). Auch Funktionen, die die Ausführung abgeben können, nicht innerhalb einer Funktion mit C-Callback verwenden (im Handbuch mit einem Ausrufezeichen markiert).
invalid order function for sortingUngültige Sortierfunktion, meist weil die Regellogik der Sortierfunktion nicht eindeutig genug istBeim Aufruf der Sortierfunktion eine eindeutige Regel festlegen; eine Regel darf nicht zugleich a größer und kleiner als b ergeben.
bad argument #1 to 'xxx' (number expected, got nil)Beim Aufruf von xxx hat das Argument #1 den falschen Typ: number erwartet, aber nil übergebenPassenden Parameter übergeben.
bad argument #2 to 'xxx' (number has no integer representation)Beim Aufruf von xxx kann Argument #2 nicht in eine Ganzzahl umgewandelt werdenPassenden Parameter übergeben.
bad argument #3 to 'xxx'Argument #3 beim Aufruf von xxx ist ungültigPassenden Parameter übergeben.
  • Behelfslösung für den Fehler attempt to yield across a C-call boundary bei der Verwendung von require
      1. Vor den Code des erforderlichen Moduls eine Zeile return function() einfügen.
      1. Am Ende des erforderlichen Moduls eine Zeile end einfügen.
      1. Beim Aufruf von require ein zusätzliches Klammerpaar verwenden, z. B. require('A') in require('A')() ändern.