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)
endLorsque 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
endLes 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.
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
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() contre ipairs()Récapitulatif - Fiche de personnage2Fonctions supplémentaires de la bibliothèque table
table.concat()construction de tables et unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des meilleurs scores3Concepts avancés des fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu’est-ce qu’une fermeture ?Récapitulatif - Gestionnaire d’événements simple6Gestion des erreurs
La fonction error()Appels protégés avec pcall()Récapitulatif - Division sécuriséeEntraînez-vous par vous-même : Compilateur Lua en ligne