Assertions: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 2: | Zeile 2: | ||
|baustelle=Ja | |baustelle=Ja | ||
|blatt=2 | |blatt=2 | ||
|beschreibung===== Einführung in Assertions ==== | |||
In ihrer simpelsten Form sind Assertions "Verspechen" an ein zugrundeliegendes Program. | |||
Oracle führt hierbei folgendes Beispiel an: | |||
"Gehen wir davon aus, dass wir eine Methode haben, die die Geschwindigkeit eines Partikels ausrechnet. Dann behaupten wir, dass die berechnete Geschwindigkeit immer kleiner als die Lichtgeschwindigkeit ist." | |||
Genau dieses Versprechen lässt sich durch eine Assert-Klausel durchsetzen. | |||
Je nach Ausführungsweise und -parametern, können Assertions auch ausgeschaltet werden und werden beim Ausführen des Programs entsprechend nicht berücksichtigt, eignen sich dadurch aber gerade deshalb zum debuggen von unserem Quellcode. | |||
Wie funktioniert diese Klausel? | |||
Im Code schreiben wir <syntaxhighlight inline lang="Java">assert Behauptung;</syntaxhighlight>. Damit "versprechen" wir, dass unsere Behauptung immer wahr ist (Dafür muss diese Behauptung ein boolscher Ausdruck sein). Sollte sie das nicht sein, wird ein AssertionError ausgegeben. Ist unsere Behauptung wahr, passiert nichts. | |||
Das Konstrukt sieht also in etwa aus wie ein if-Statement: Es gibt einen boolschen Ausdruck, der geprüft wird und entsprechend für wahr oder falsch ein bestimmtes Verhalten hervorruft. | |||
Allerdings ist das nur auf den ersten Blick wahr und sollte dringend vermieden werden. | |||
==== Merkregeln zur Verwendung von Assertions: ==== | |||
Assertions ... | |||
# ... sind kein Ersatz für if-Statements (Assertions können z.B. abgestellt werden) | |||
# ... können global oder für einzelne Klassen ausgeliefert werden | |||
# ... sollten eher für interne Fehler und Bugs verwendet werden | |||
# ... sollten nicht in öffentlichen Methoden verwendet werden (Ausnahme hierbei sind "dead-code" Fälle z.B. bei switch-cases und Endlosschleifen) | |||
|schweregrad=leicht | |schweregrad=leicht | ||
|weiterlesen=Ja | |weiterlesen=Ja | ||
|seite=Exceptions | |seite=Exceptions | ||
}} | }} |
Version vom 1. Juni 2024, 20:59 Uhr
🚧 | Diese Seite befindet sich in Bearbeitung | 🚧 |
🤓 | Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 2 annotiert und ab Blatt 3 abgezogen wird. | 🤓 |
Beschreibung
Einführung in Assertions
In ihrer simpelsten Form sind Assertions "Verspechen" an ein zugrundeliegendes Program. Oracle führt hierbei folgendes Beispiel an:
"Gehen wir davon aus, dass wir eine Methode haben, die die Geschwindigkeit eines Partikels ausrechnet. Dann behaupten wir, dass die berechnete Geschwindigkeit immer kleiner als die Lichtgeschwindigkeit ist."
Genau dieses Versprechen lässt sich durch eine Assert-Klausel durchsetzen.
Je nach Ausführungsweise und -parametern, können Assertions auch ausgeschaltet werden und werden beim Ausführen des Programs entsprechend nicht berücksichtigt, eignen sich dadurch aber gerade deshalb zum debuggen von unserem Quellcode.
Wie funktioniert diese Klausel?
Im Code schreiben wir assert Behauptung;
. Damit "versprechen" wir, dass unsere Behauptung immer wahr ist (Dafür muss diese Behauptung ein boolscher Ausdruck sein). Sollte sie das nicht sein, wird ein AssertionError ausgegeben. Ist unsere Behauptung wahr, passiert nichts.
Das Konstrukt sieht also in etwa aus wie ein if-Statement: Es gibt einen boolschen Ausdruck, der geprüft wird und entsprechend für wahr oder falsch ein bestimmtes Verhalten hervorruft. Allerdings ist das nur auf den ersten Blick wahr und sollte dringend vermieden werden.
Merkregeln zur Verwendung von Assertions:
Assertions ...
- ... sind kein Ersatz für if-Statements (Assertions können z.B. abgestellt werden)
- ... können global oder für einzelne Klassen ausgeliefert werden
- ... sollten eher für interne Fehler und Bugs verwendet werden
- ... sollten nicht in öffentlichen Methoden verwendet werden (Ausnahme hierbei sind "dead-code" Fälle z.B. bei switch-cases und Endlosschleifen)
Negativbeispiel
Positivbeispiel
Wenn du diese Seite interessant fandest, findest du hier noch mehr Seite(n) dazu:
Exceptions