RX0071

Domaine: Exécution

Message d'erreur

l'assertion a échoué : %s contre %s

Dans le message, %s marque une valeur que le moteur remplit au moment où il lève l'erreur.

L'histoire

Votre script vient de s'arrêter sur une assertion qui a échoué, et le message affiche deux choses : une valeur, et ce contre quoi elle était comparée. Expliquons. Un assert est une promesse que vous faites au moteur : à cet endroit du script, telle chose doit être vraie. Si la promesse tient, rien ne se passe et le script continue. Si elle ne tient pas, le moteur refuse net. Avant, le refus disait simplement que le builtin avait refusé, et vous deviez deviner quelle assertion avait cassé, et pourquoi. Maintenant, le message vous donne directement les deux éléments en jeu. Prenons un exemple : vous affirmez que le résultat d'un calcul est égal à six, mais le calcul rend cinq. Le message affichera cinq contre six. Vous voyez immédiatement l'écart. À partir de là, deux possibilités : soit votre calcul est faux et il faut le corriger, soit votre attente était fausse et c'est l'assertion qu'il faut revoir. Dans les deux cas, regardez les deux valeurs côte à côte : l'erreur se cache presque toujours dans leur différence.

Texte issu du catalogue d'erreurs du moteur Rush.