Das assert-Schlüsselwort in Java
-
Verwenden von
assert
als Bedingung in Java -
Verwendung von
assert condition : expression
in Java - um zu überprüfen, ob der nicht erreichbare Teil des Codes tatsächlich nicht erreichbar ist
- bei internen Invarianten
In Java können Sie das Schlüsselwort assert
verwenden, um Assertionen zu aktivieren. Diese Funktion wird verwendet, um unsere Annahmen über das Programm zu testen. Es gibt zwei Möglichkeiten, wie wir Assertionen in Java verwenden können, und wir werden diese in diesem Artikel behandeln.
Verwenden von assert
als Bedingung in Java
Eine Assertion ist der schnellste und einfachste Weg, um Fehler in einem Programm zu erkennen und zu beheben. Es wird angenommen, dass eine Assertion wahr ist, wenn sie ausgeführt wird. Andernfalls würde ein Assertionsfehler ausgelöst, wenn er falsch ist.
Die Bedingung assert
ist hier ein boolescher Ausdruck.
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");
}
}
Ausgabe
There are 3 names in an array
Die Assertionen sind deaktiviert; Daher wird dieses Programm kompiliert und ausgeführt, ohne dass ein Fehler angezeigt wird. Aber wenn die Assertionen aktiviert sind und die Bedingung falsch ist, wirft JVM sofort einen AssertionError
und stoppt das Programm.
Exception in thread
"main" java.lang.AssertionError at JavaAssertCheck.main(JavaAssertCheck.java : 5)
Verwendung von assert condition : expression
in Java
Bei diesem Assertion-Format wird der Ausdruck an den Konstruktor des AssertionError
übergeben, wenn die Bedingung als falsch ausgewertet wird. Wenn die Assertionen aktiviert sind und die unten gezeigte Annahme falsch ist, wird der AssertionError
mit dem übergebenen Ausdruck als Detailmeldung angezeigt.
Diese Nachricht hilft bei der korrekten Identifizierung des Fehlers und der Behebung des Fehlers.
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");
}
}
Ausgabe
Exception in thread "main" java.lang.AssertionError: The assertion condition is false.
at JavaAssertCheck.main(JavaAssertCheck.java:5)
Hier zeigt es bestimmte Bedingungen, unter denen wir das Konzept der Assertion in Java verwenden können.
um zu überprüfen, ob der nicht erreichbare Teil des Codes tatsächlich nicht erreichbar ist
public void unReachableCode() {
System.out.println("Unreachable Code");
return;
assert true;
}
Wenn Sie eine Annahme an einer Stelle platzieren, von der Sie dachten, dass der Flow nicht erreicht werden sollte, gibt diese Funktion beim Entfernen der nicht erreichbaren Anweisung einen Fehler aus.
bei internen Invarianten
Bevor Behauptungen verfügbar waren, verwendeten viele Programmierer Kommentare, um ihre Annahmen über das Programm zu dokumentieren. Wie unten in der mehrwegigen if-Anweisung gezeigt, möchten wir vielleicht etwas schreiben, das unsere Annahme über den else-Fall erklärt.
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;
}
}
Assertions sollten in öffentlichen Methoden nicht verwendet werden, um die übergebenen Argumente zu überprüfen, da der Benutzer diese selbst angeben kann; daher kann es fehlschlagen und zu einem AssertionError
führen. Verwenden Sie KEINE Assertionen, um die Aufgabe zu verwalten, die Ihre Anwendung benötigt, um ordnungsgemäß zu funktionieren. Ein Beispiel ist das Entfernen von Nullelementen aus einer Liste.
In der Regel sollte der in einer Assertion enthaltene Ausdruck frei von Nebenwirkungen sein.
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