« Initiation au Lua avec Scribunto/Gestion de l'environnement » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 15 :
Dans ce paragraphe, nous allons dire quelques mots sur la gestion des erreurs.
 
Lorsqu'on fait un programme pour notre usage personnel, on sait généralement ce qu'il contient et on peut alors l'utiliser correctement. Si ce programme est destiné à être utilisé par quelqu'un d'autre, alors on n'est pas sûr que l'autre utilisateur aura bien compris comment marche le programme. L'utilisateur va, peut-être, faire des erreurs en l'utilisant. Le bon programmeur doit être capable d'anticiper toutes les erreurs qu'un utilisateur peut faire et doit prévoir, dans son programme, des instructions pour permettre au programme de réagir correctement en cas d'erreur d'utilisation.
 
Prenons un exemple :
Ligne 56 :
 
 
Que c'est-il passé. En fait, rien de bien compliqué, nous avons vu, dans le chapitre exposant les fonctions préprogrammées de base, que la fonction '''tonumber''' ne comprenait pas le français et était incapable de convertir la chaîne de caractère "cinquante-six" en nombre 56. Et dans ce cas là, elle nous retourne '''nil'''. par conséquent la variable poids contenaiscontenait '''nil''' au moment où elle a été comparée au nombre 55, ce qui a provoqué l'erreur de script.
 
Comment remédier à ce problème ? Il nous suffit simplement d'éviter que la variable poids soit comparée à un nombre lorsqu'elle contient '''nil''' et que dans ce cas la fonction nous retourne un message d'erreur informant l'utilisatrice de l'erreur qu'elle a commise. Nous devons donc encore perfectionner notre programme en écrivant une nouvelle fonction '''p.alerte5''' qui met en oeuvre ce que l'on vient de dire :
Ligne 68 :
local reponse
if poids == nil then
reponse = "Vous n'avez pas rentré un nombre sous un format reconnaissable !"
else
if poids < 55 then
reponse = "Votre poids est acceptable !"
else
if poids < 60 then
Ligne 96 :
 
'''<nowiki>{{#invoke:Balance|alerte5|cinquante-six}}</nowiki>''', nous obtenons : {{#invoke:Balance|alerte5|cinquante-six}}
 
 
Nous voyons que nous obtenons une réponse appropriée dans tous les cas de figure.
 
== Comment utiliser des fonctions écrites dans un autre module ==