Menu
CoddyTech

A função error()

Parte da seção Lógica e fluxo do Journey de Lua da Coddy. Lição 32 de 54.

Às vezes, seu código precisa parar imediatamente quando algo dá errado. Lua fornece a função error() para lidar com essas situações, gerando um erro e interrompendo a execução do script.

A função error() recebe uma mensagem como argumento e interrompe o programa, exibindo essa mensagem para indicar o que deu errado. Aqui está a sintaxe básica:

error("Something went wrong!")

Isso é particularmente útil ao validar entradas de funções. Por exemplo, se uma função espera um número positivo, mas recebe um número negativo, você pode usar error() para impedir a execução:

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

Quando error() é chamada, o programa para imediatamente nesse ponto e exibe sua mensagem de erro personalizada. Isso ajuda você a detectar problemas antecipadamente e comunicar com clareza o que deu errado, tornando seu código mais confiável e mais fácil de depurar.

error() serve para erros reais, como quando uma função é chamada com o tipo de valor errado. Para falhas que quem chama deve esperar, como um item ausente ou uma entrada inválida do usuário, o código Lua geralmente não gera um erro. Em vez disso, a função retorna nil e uma mensagem, e quem chamou verifica o 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)  -- Nenhum item chamado sword
end

As próprias funções do Lua funcionam da mesma maneira: tonumber("abc") retorna nil, e io.open() retorna nil e uma mensagem quando não consegue abrir um arquivo.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de Lua online