? Java hat den " behaupten " Stichwort , um es einfacher zu erkennen und zu melden Fehler in Java 1.4 . Assertions damit das Programm eine Bedingung , dass es um wahr zu sein erwartet anzugeben. Sollte die Bedingung nicht , meldet das Programm einen Fehler , die behandelt werden müssen . Assertion Syntax
Die Syntax für eine Behauptung ist sehr einfach:
behaupten CODE
Der Code muss entweder als wahr oder falsch zu bewerten. Wenn das stimmt, dann wird das Programm weiterhin wie gewohnt. Wenn dies nicht zutrifft , dann ist ein AssertionError ausgelöst. Auf diese Weise ermöglicht die Behauptung Suchbegriff ein Programmierer , um Aussagen über den Zustand des Programms an bestimmten Punkten zu machen und zu identifizieren Zeiten, in denen das Programm geht in die besagt, dass sind nicht erlaubt.
Wann Assertions Mit
Assertions sollten verwendet werden, um Invarianten , oder Situationen, die der Programmierer glaubt, wird nie auftreten zu überprüfen. Das folgende Beispiel einer Aussage über den Zustand der Münze ist ein Beispiel für eine invariant. Durch die Verwendung von Behauptungen Invarianten überprüfen , erreichen Programmierer zwei Dinge. Erstens bieten sie einen Weg für das Programm zum Scheitern verurteilt , wenn die invariant erweist sich als falsch aufgrund Speicherfehler . Zweitens bieten sie eine deutlich erkennbare Weise für den Programmierer zu zeigen, andere Programmierer die Annahmen , die in seinem Code existieren.
Probleme
Das zentrale Problem mit Behauptungen kann auf die Tatsache , dass sie eine optionale Funktion sind zurückverfolgt werden. Für eine Vielzahl von Gründen , können die Client-Rechner wählen, um das Programm zu starten mit Behauptungen ausgeschaltet. Dies hat eine Reihe von Effekten. Erstens kann der Programmierer nicht , stellen Sie keine Code in der Annahme , dass der Staat des Programms verändert , da dieser Code nicht mehr laufen würde , wenn eine Behauptung nicht bestanden. Zweitens kann der Programmierer nie davon ausgehen, dass Behauptungen ausgewertet wird. Dies bedeutet, dass die Überprüfung Argument für Methoden noch sollte mit den alten Ausnahmen , das nie sein kann deaktiviert werden. Schließlich, da ein neues Schlüsselwort " behaupten ", um die Sprache hinzugefügt wurde, können Variablen in alten Code nicht den Namen " geltend zu machen. "
Assertion Beispiel
das Betrachten folgenden Code:
behaupten ( Münze == HEADS