RX0042

Domaine: Exécution

Message d'erreur

la condition à %s n'est pas une valeur de vérité (c'est %s)

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

L'histoire

Vous avez écrit un si, et la condition n'est pas une vraie valeur de vérité. Regardons ce que le moteur a reçu. Une condition doit valoir vrai ou faux. Ici, elle vaut autre chose, par exemple un nombre ou un texte quelconque. Dans presque tous les autres langages, on devinerait : zéro serait faux, un texte non vide serait vrai. Rush refuse de deviner. Son principe est que la valeur de vérité, ce sont les chaînes true et false, et jamais un nombre présumé. Si un nombre doit jouer ce rôle, un champ supplémentaire porte cette intention, et alors seulement zéro vaut faux et un vaut vrai. Pourquoi tant de prudence ? Parce que deviner ferait exécuter le mauvais corps de la branche, en silence, et la sortie serait celle d'un autre programme. Un exemple : si zéro, ou si le texte faux entre guillemets, deux lectures défendables et toutes deux arbitraires. Le message vous donne le type de ce qui est arrivé, pour que vous voyiez ce que vous avez fourni. La solution : écrivez une vraie condition, une comparaison ou un verbe qui produit une valeur de vérité.

Texte issu du catalogue d'erreurs du moteur Rush.