Message d'erreur
Dans le message, %s marque une valeur que le moteur remplit au moment où il lève l'erreur.
L'histoire
Vous avez passé une valeur à un builtin, et le moteur a dit non : le paramètre a refusé ce qu'on lui donnait. Voyons pourquoi c'est une bonne nouvelle. Chaque paramètre a un type déclaré, et ce type est un vrai juge, une pièce construite à la naissance du moteur. Avant que le builtin ne tourne, tous les arguments passent devant ce juge. Si le juge dit non, le builtin ne s'exécute pas du tout. Pourquoi tant de rigueur ? Parce qu'autrefois, un type n'était que du texte que personne ne vérifiait. Résultat : additionner sept et banane répondait sept, avec un code de sortie zéro. Une mauvaise réponse qui se déguise en succès, c'est le pire échec possible, car rien en aval ne peut le détecter. Un petit exemple : vous écrivez un plus entre un texte et un nombre. Le moteur ne devine pas ce que vous vouliez dire, il refuse, en nommant le paramètre fautif et le genre attendu. Les lignes qui accompagnent ce message vous donnent tout : le paramètre, son type, le texte de la pièce, la valeur reçue, et les mots de tungsten pour expliquer le refus. Corrigez la valeur, ou convertissez-la explicitement. Un refus clair vaut mieux qu'un succès menteur.
Texte issu du catalogue d'erreurs du moteur Rush.
