Java Assert, Assertion

Assert, Assertion

Mit assert stellt man sicher, daß das Programm nur weiter läuft, wenn notwendige Bedingungen erfüllt sind.
So kann verhindert werden, daß bei einem unerwarteten Fehler weitere Folgefehler verursacht werden.

Wird die Bedingung einer assert Anweisung nicht erfüllt, also false übergeben, so wirft die Laufzeitumgebung eines Fehler, genauer einen java.lang.AssertionError.
In der Regel, nämlich wenn Errors nirgendwo abgefangen werden, führt dies uum Abbruch des Programms.
Optional kann ein Meldungstext mitgegeben werden, welcher mit Error.getMessageText() abgefragt werden kann, und der im Stacktrace angezeigt wird.

Der Sinn von assert ist, zur Laufzeit eines Programms sicherzustellen, daß erwartete Bedingungen tatsächlich erfüllt sind.

Beispiel, in dem ein Programm nur weiterarbeiten soll, wenn ein Parameter eine positive Zahl ist:

    public void processEarnung(final int earning) {
        assert (earning > 0) : "Negatives Einkommen darf an dieser Stelle nicht auftreten";
        // der folgende Programmcode wird nur ausgeführt, wenn die Bedingung der assert Anweisung true ist.
        // ansonsten wirft obige assert Anweisung einen java.lang.AssertionError
        // [...]
    }

Assert ignorieren, Assert ausführen

Asserts lassen sich durch JVM-Parameter global oder feingranular einschalten und ausschalten (=unterdrücken):

Asserts lassen sich auch feingranular, nämlich auf Ebene von Package, einschalten und ausschalten:
Hier ein Beispiel, mit dem assert grundsätzlich aktiviert wird, mit Ausnahme eines bestimmten Packages:



Nach oben, Inhaltsverzeichnis, Impressum Admin: Artikel editieren