Java Assert!= null?

4 Antworten

assert prüft, ob sich ein Ausdruck zu true auswertet. Sollte dies der Fall sein, wird das Programm ganz normal fortgesetzt. Andernfalls bricht es mit einem AssertionError ab.

Assertions lassen sich beim Ausführen ein- und ausschalten (Parameter -ea) und sollten daher nur für Debugging-/Testing-Zwecke eingesetzt werden.

Dementsprechend kann man Assertions, wie der Name schon sagt, für Annahmen verwenden, die immer wahr sein müssten. Wenn sie mal nicht wahr sind, weiß man, dass ein Logikfehler im eigenen Code vorliegt.

Fehler, mit denen dagegen durchaus zu rechnen ist (z. B. Fehler zur Laufzeit, aber auch Fehler beim Aufruf einer Methode durch Fremdcode), sollten niemals mit Assertions behandelt werden, sondern bspw. mit if-Abfragen und Exceptions. Sind Assertions deaktiviert, muss das Programm inkl. Fehlerbehandlung vollumfänglich funktionieren. Assertions sind also nur interne, für das Programm an sich nicht erforderliche Anweisungen.

Übrigens wird man in der Praxis Assertions nicht pur verwenden, sondern eher ein Testing-Framework wie JUnit nutzen. Dieses vereinfacht das Schreiben von Unit-Tests und ermöglicht zudem die saubere Trennung vom eigentlichen Code.

assert ist eine Abfrage für Tests.
Wenn ein assert "false" ist, gilt der Test als fehlgeschlagen.

Der Code darunter wird immer ausgeführt.

Woher ich das weiß:Berufserfahrung – Java-Entwickler von Batch- und Webanwendungen

assertions sind bestimmte dinge die der programmierer von seinem programm erwartet

assertions kommen in java mit dem assert keyword vor

nach dem keyword drückt der programmierer seine erwartung in boolean-logik aus

also wenn der boolean zu false evaluiert, ist die annahme falsch

technisch gesehen schmeißt das programm ein fehler (wenn du deine laufzeit auf assertions eingestellt hast mit -ea)

für den programmierer heißt das, dadurch dass seine erwartung nicht erfüllt wurde, signalisiert die assertion, dass das programm einen bug hat

Woher ich das weiß:Studium / Ausbildung