Menu
CoddyTech

Die error()-Funktion

Teil des Abschnitts Logik und Programmablauf der Lua-Journey von Coddy. Lektion 32 von 54.

Manchmal muss dein Code sofort anhalten, wenn etwas schiefgeht. Lua stellt die Funktion error() bereit, um solche Situationen zu behandeln, indem sie einen Fehler auslöst und die Skriptausführung anhält.

Die Funktion error() erhält eine Meldung als Argument und hält das Programm an. Dabei zeigt sie diese Meldung an, um darauf hinzuweisen, was schiefgelaufen ist. Hier ist die grundlegende Syntax:

error("Something went wrong!")

Dies ist besonders nützlich, wenn du Funktionseingaben überprüfst. Wenn eine Funktion beispielsweise eine positive Zahl erwartet, aber eine negative erhält, kannst du error() verwenden, um die weitere Ausführung zu verhindern:

function calculateSquareRoot(num)
    if num < 0 then
        error("Cannot calculate square root of a negative number")
    end
    return math.sqrt(num)
end

Wenn error() aufgerufen wird, stoppt das Programm an dieser Stelle sofort und zeigt deine benutzerdefinierte Fehlermeldung an. So kannst du Probleme frühzeitig erkennen und klar mitteilen, was schiefgelaufen ist. Dadurch wird dein Code zuverlässiger und lässt sich leichter debuggen.

error() ist für echte Fehler gedacht, etwa wenn eine Funktion mit einem Wert des falschen Typs aufgerufen wird. Bei Fehlern, mit denen ein Aufrufer rechnen sollte, wie einem fehlenden Element oder einer ungültigen Benutzereingabe, löst Lua-Code normalerweise keinen Fehler aus. Stattdessen gibt die Funktion nil und eine Meldung zurück, und der Aufrufer prüft das Ergebnis:

function findItem(inventory, name)
    if inventory[name] == nil then
        return nil, "No item called " .. name
    end
    return inventory[name]
end

local count, err = findItem({potion = 3}, "sword")
if count then
    print("You have " .. count)
else
    print(err)  -- Kein Gegenstand namens sword
end

Luas eigene Funktionen funktionieren genauso: tonumber("abc") gibt nil zurück, und io.open() gibt nil und eine Meldung zurück, wenn eine Datei nicht geöffnet werden kann.

Probier es selbst

Diese Lektion enthält keine Programmieraufgabe.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik und Programmablauf

Übe selbstständig: Online-Lua-Compiler