? Java ajouté le mot-clé " affirmer " pour le rendre plus facile à détecter et signaler les erreurs en Java 1.4 . Les assertions permettent au programme de spécifier une condition qu'elle s'attend à être vrai. Si l' état échec, le programme signale une erreur qui doit être manipulé . Assertion Syntaxe
La syntaxe d'une affirmation est très simple:
affirmer CODE
Le code doit évaluer que ce soit vrai ou faux. Si c'est vrai, alors le programme continue comme d'habitude. Si elle est fausse , puis un AssertionError est levée. De cette façon , le mot clé assertion permet à un programmeur de faire des affirmations sur l'état du programme à des points spécifiques et d'identifier les moments où le programme passe dans les Etats qui ne sont pas autorisés .
Quand utiliser les assertions
assertions ne doivent être utilisés pour vérifier les invariants ou des situations que le programmeur croit ne se produira jamais . L'exemple ci-dessous d'une affirmation en ce qui concerne l'état d'une pièce de monnaie est un exemple d'un invariant . En utilisant assertions pour vérifier les invariants , les programmeurs réaliser deux choses. Tout d'abord, ils fournissent un moyen pour le programme à l'échec si l'invariant s'avère être fausse en raison de la corruption de la mémoire. Deuxièmement, ils fournissent un moyen clairement lisible pour le programmeur de montrer d'autres programmeurs les hypothèses qui existent dans son code.
Problèmes
Le problème central avec assertions peut être attribuée au fait qu'ils sont une option . Pour diverses raisons, les machines clientes peuvent choisir d'exécuter le programme d'affirmations éteints. Cela a un certain nombre d'effets . Tout d'abord, le programmeur ne peut pas mettre n'importe quel code dans une hypothèse qui modifie l'état du programme , puisque ce code ne serait plus fonctionner si une assertion a échoué. Deuxièmement, le programmeur peut jamais présumer que les affirmations seront évaluées. Cela signifie que l'argument vérification des méthodes doit encore être effectuée en utilisant l'ancien système d'exceptions , qui ne peut jamais être désactivé. Enfin, depuis un nouveau mot-clé " affirmer " a été ajoutée à la langue , les variables dans l'ancien code ne peuvent pas avoir le nom de « s'affirmer ».
Assertion Exemple
Prenons l' suivant le code suivant:
assert ( monnaie == CHEFS