Menu
CoddyTech

La fonction error()

Fait partie de la section Logique et déroulement du programme du Journey Lua de Coddy. Leçon 32 sur 54.

Parfois, votre code doit s’arrêter immédiatement lorsque quelque chose ne va pas. Lua fournit la fonction error() pour gérer ces situations en déclenchant une erreur et en interrompant l’exécution du script.

La fonction error() prend un message comme argument et arrête le programme en affichant ce message pour indiquer ce qui n’a pas fonctionné. Voici la syntaxe de base :

error("Something went wrong!")

Cela est particulièrement utile lors de la validation des entrées d’une fonction. Par exemple, si une fonction attend un nombre positif mais reçoit un nombre négatif, tu peux utiliser error() pour empêcher la poursuite de l’exécution :

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

Lorsque error() est appelée, le programme s’arrête immédiatement à cet endroit et affiche votre message d’erreur personnalisé. Cela vous aide à détecter les problèmes tôt et à communiquer clairement ce qui s’est mal passé, ce qui rend votre code plus fiable et plus facile à déboguer.

error() sert à signaler de véritables erreurs, par exemple lorsqu’une fonction est appelée avec une valeur du mauvais type. Pour les échecs auxquels l’appelant peut s’attendre, comme un élément manquant ou une saisie utilisateur incorrecte, le code Lua ne déclenche généralement pas d’erreur. À la place, la fonction renvoie nil et un message, et l’appelant vérifie le résultat :

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)  -- Aucun objet appelé sword
end

Les fonctions intégrées de Lua fonctionnent de la même manière : tonumber("abc") renvoie nil, et io.open() renvoie nil et un message lorsqu’elle ne peut pas ouvrir un fichier.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et déroulement du programme

Entraînez-vous par vous-même : Compilateur Lua en ligne