Was sind Assertionen in Java?

May 2

Java hinzugefügt das Schlüsselwort "behaupten", um es einfacher zu erkennen und melden von Fehlern in Java 1.4. Behauptungen können das Programm eine Bedingung angeben, die sie erwartet, um wahr zu sein. Die Zustand nicht, das Programm sollte meldet einen Fehler, der behandelt werden müssen.

Behauptung-Syntax

Die Syntax für eine Behauptung ist sehr einfach:

CODE zu behaupten

Der Code muss als entweder True oder False ausgewertet werden. Wenn true, dann weiter das Programm wie gewohnt. Wenn false, wird ein AssertionError ausgelöst. Auf diese Weise kann das Schlüsselwort Behauptung einen Programmierer machen Aussagen über den Zustand des Programms zu bestimmten Zeitpunkten und identifizieren Mal wenn das Programm in die Staaten übergeht, die nicht zulässig sind.

Verwendung von Behauptungen

Assertionen sollte verwendet werden, zu überprüfen, invarianten oder Situationen, die der Programmierer glaubt nie auftreten wird. Die im folgenden Beispiel für eine Aussage über den Zustand einer Münze ist ein Beispiel für eine invariante. Mit Behauptungen um invarianten zu überprüfen, zu Programmierer zwei Dinge erreichen. Erstens bieten sie eine Möglichkeit für das Programm schlägt fehl, wenn die invariante entpuppt sich als falsch durch Speicherbeschädigung. Zweitens bieten sie eine deutlich erkennbare Möglichkeit für den Programmierer zu anderen Programmierern zeigen die Annahmen, die vorhanden sind in seinem Code.

Probleme

Das zentrale Problem mit Aussagen lassen sich darauf zurückführen, dass sie ein optionales Feature sind. Für eine Vielzahl von Gründen können Client-Rechner beschließen, zur Ausführung des Programms mit Behauptungen ausgeschaltet. Dies hat mehrere Auswirkungen. Erstens kann nicht der Programmierer Code in eine Annahme, die ändert den Status des Programms enthält, da dieser Code nicht mehr ausgeführt werden würde, wenn ein Assertionsfehler stellen. Zweitens kann der Programmierer nie davon ausgehen, dass die Behauptungen ausgewertet werden. Dies bedeutet, dass für Methoden prüfen noch durchgeführt werden soll, mit dem alten Ausnahmen-System, das nie deaktiviert werden kann. Schließlich haben nicht seit ein neues Schlüsselwort "behaupten" der Sprache wurde ergänzt, Variablen in alten Code den Namen "geltend zu machen."

Behauptung-Beispiel

Betrachten Sie den folgenden Code:

geltend machen (Münze == Köpfe || Münze == TAILS);

Dies behauptet, dass diese Variable mit dem Namen "Münze" entweder "Kopf" oder "Zahl." entsprechen muss Wenn es einen anderen Wert enthält, das Programm ist in einem illegalen Status und die Assertion-Fehlermeldung angezeigt.