Assertions en Java
Une assertion permet de tester l’exactitude de toutes les hypothèses qui ont été faites dans le programme.
L’assertion est réalisée à l’aide de l’instruction assert en Java. Lors de l’exécution de l’assertion, on pense que c’est TRUE. En cas d’échec, JVM renvoie une erreur nommée AssertionError. Il est principalement utilisé à des fins de test pendant le développement.
L’instruction assert est utilisée avec une expression booléenne et peut être écrite de deux manières différentes.
Syntaxe 1:
assert expression;
Syntaxe 2:
assert expression1 : expression2;
Exemple:
import java.util.Scanner; class AssertionExemple { public static void main( String args[] ) { Scanner sc = new Scanner(System.in); System.out.print("Entrez votre age: "); int age = sc.nextInt(); assert age >= 20 : "Invalide!"; System.out.println("Age est "+age); } }
Sortie:
Si vous utilisez une assertion, elle ne s’exécutera pas simplement parce que l’assertion est désactivée par défaut. Pour activer l’assertion, l’option -ea ou -enableassertions de java doit être utilisé.
- Compilez-le par: javac AssertionExemple.java
- Exécutez-le par: java -ea AssertionExemple
Pourquoi utiliser les assertions?
– Partout où un programmeur veut voir si ses hypothèses sont fausses ou non.
– S’assurer que les hypothèses écrites dans les commentaires sont correctes.
if((n % 1) == 1) { } else // n doit être pair { assert (n % 2 == 0); }
Différence entre Assertion et Exception
Les assertions sont principalement utilisées pour vérifier des situations logiquement impossibles. Par exemple, ils peuvent être utilisés pour vérifier l’état auquel un code s’attend avant qu’il ne commence à s’exécuter ou l’état après qu’il a fini de s’exécuter. Contrairement aux exceptions/erreurs, les assertions sont généralement désactivées au moment de l’exécution.
Quand utiliser les assertions
Avec des arguments de méthodes privées. Les arguments privés sont fournis uniquement par le code du développeur et le développeur peut vouloir vérifier ses hypothèses sur les arguments.
Quand n’utiliser pas les assertions
- Les assertions ne doivent pas être utilisées pour remplacer les messages d’erreur.
- Les assertions ne doivent pas être utilisées pour vérifier les arguments dans les méthodes publiques car ils peuvent être fournis par l’utilisateur. La gestion des erreurs doit être utilisée pour gérer les erreurs fournies par l’utilisateur.