Le mot-clé assert en Java
-
Utiliser
assert
comme condition en Java -
Utilisation de
assert condition : expression
en Java - pour vérifier si la partie inaccessible du code est réellement inaccessible
- en cas d’invariants internes
En Java, vous pouvez utiliser le mot-clé assert
pour activer les assertions. Cette fonction est utilisée pour tester nos hypothèses sur le programme. Il existe deux manières d’utiliser les assertions en Java, et nous allons les aborder dans cet article.
Utiliser assert
comme condition en Java
Une assertion est le moyen le plus rapide et le plus simple de détecter et de corriger les bogues dans un programme. Une assertion est supposée vraie lorsqu’elle est exécutée. Sinon, cela renverrait une erreur d’assertion si elle est fausse.
Ici, la condition assert
est une expression booléenne.
public class JavaAssertCheck {
public static void main(String args[]) {
String[] names = {"John", "Mary", "David"};
assert names.length == 2;
System.out.println("There are " + names.length + " names in an array");
}
}
Production
There are 3 names in an array
Les assertions sont désactivées ; ainsi, ce programme sera compilé et exécuté sans afficher aucune erreur. Mais si les assertions sont activées et que la condition est fausse, JVM renvoie immédiatement une AssertionError
et arrête le programme.
Exception in thread
"main" java.lang.AssertionError at JavaAssertCheck.main(JavaAssertCheck.java : 5)
Utilisation de assert condition : expression
en Java
Dans ce format d’assertion, l’expression est passée au constructeur de AssertionError
si la condition est évaluée comme fausse. Si les assertions sont activées et que l’hypothèse indiquée ci-dessous est fausse, alors l’AssertionError
avec l’expression passée en tant que message détaillé est affichée.
Ce message aide à identifier correctement l’erreur et à corriger l’erreur.
public class JavaAssertCheck {
public static void main(String args[]) {
String[] names = {"John", "Mary", "David"};
assert names.length == 2 : "The assertion condition is false.";
System.out.println("There are " + names.length + " names in an array");
}
}
Production
Exception in thread "main" java.lang.AssertionError
: The assertion condition is false.at JavaAssertCheck.main(JavaAssertCheck.java : 5)
Ici, il montre certaines conditions dans lesquelles nous pouvons utiliser le concept d’assertion en Java.
pour vérifier si la partie inaccessible du code est réellement inaccessible
public void unReachableCode() {
System.out.println("Unreachable Code");
return;
assert true;
}
Si vous placez une hypothèse à un endroit où vous pensiez que le flux ne devrait pas être atteint, cette fonction provoquera une erreur lors de la suppression de l’instruction inaccessible.
en cas d’invariants internes
Avant que les assertions ne soient disponibles, de nombreux programmeurs utilisaient des commentaires pour documenter leurs hypothèses sur le programme. Comme indiqué ci-dessous dans l’instruction if multidirectionnelle, nous pourrions vouloir écrire quelque chose expliquant notre hypothèse sur le cas else.
public class JavaAssertCheck {
public static void main(String args[]) {
int n = 37;
if (n % 3 == 0)
System.out.println("n % 3 == 0");
else if (n % 3 == 1)
System.out.println("n % 3 == 1");
else
assert n % 3 == 2 : "Assumption is false. " + n;
}
}
Les assertions ne doivent pas être utilisées dans les méthodes publiques pour vérifier les arguments passés car l’utilisateur peut les donner lui-même ; ainsi, il peut échouer et conduire à une AssertionError
. N’utilisez PAS d’assertions pour gérer la tâche dont votre application a besoin pour fonctionner correctement. Un exemple consiste à supprimer des éléments nuls d’une liste.
En règle générale, l’expression contenue dans une affirmation doit être exempte d’effets secondaires.
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn