Menu
CoddyTech

La función error()

Parte de la sección Lógica y flujo del Journey de Lua de Coddy. Lección 32 de 54.

A veces, tu código necesita detenerse inmediatamente cuando algo sale mal. Lua proporciona la función error() para gestionar estas situaciones, generando un error y deteniendo la ejecución del script.

La función error() recibe un mensaje como argumento y detiene el programa, mostrando ese mensaje para indicar qué salió mal. Esta es la sintaxis básica:

error("Something went wrong!")

Esto es especialmente útil al validar las entradas de una función. Por ejemplo, si una función espera un número positivo pero recibe uno negativo, puedes usar error() para impedir que la ejecución continúe:

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

Cuando se llama a error(), el programa se detiene inmediatamente en ese punto y muestra tu mensaje de error personalizado. Esto te ayuda a detectar problemas pronto y a comunicar claramente qué salió mal, lo que hace que tu código sea más fiable y fácil de depurar.

error() sirve para errores reales, como cuando se llama a una función con el tipo de valor incorrecto. Para los fallos que quien llama debería prever, como un elemento ausente o datos incorrectos del usuario, el código Lua normalmente no genera un error. En su lugar, la función devuelve nil y un mensaje, y quien llama comprueba el resultado:

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)  -- No hay ningún objeto llamado sword
end

Las propias funciones de Lua funcionan igual: tonumber("abc") devuelve nil, e io.open() devuelve nil y un mensaje cuando no puede abrir un archivo.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Lua online