Skip to Content

3 Implementieren von Assertions (Annahmen)

Fügen Sie hinter den Kommentaren der drei Methoden Assertions (Annahmen) ein, die die Forderung in den Kommentaren erfüllen:

package Kurs2.Assertion;

public class Fragen1 {
public static void main (String[] args) {
int konto = 1000;
konto = kontobuchung(konto,-500);
String s = verkettung("Test",null);
int volumen;
volumen = paketvolumen (100, 50, 60);
volumen = paketvolumen (20, 20, -5);
}

public static int kontobuchung (int konto, int betrag) {
// Es darf kein negative Wert für betrag verwendet werden


return (konto - betrag);
}

public static String verkettung (String a, String b) {
// Weder die Übergabevariable a noch b dürfen null Referenzen sein


return (a + b);
}

public static int paketvolumen(int laenge, int breite, int hoehe) {
// Alle Paketmaße müssen positiv sein
// Die Summe von laenge, breite und hoehe darf 2000 nicht uebersteigen


return (laenge*breite*hoehe);
}
}

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 4 Minuten

Antwort zur Frage 2: Verwendung von Assertions

Assertions haben im Normalfall keinen Performancenachteil. Da das Assertionchecking nur explizit eingeschaltet wird, muss man für die Assertions nicht unbedingt Qualititätssicherung und keine professionelle Behandlung des Sonderfalls durchführen. Daher sind typische Situationen

  • Die durchzuführende Prüfung würde sehr (,sehr ) oft durchgeführt und sollte "eigentlich" nie einen Fehlerfall anzeigen
  • Die durchzuführende Prüfung sollte nie einen Fehlerfall produzieren, da z.Bsp. aufrufende Methoden den Fehlerfall schon abfangen. Eine doppelte, reguläre Prüfung wäre im Normalbetrieb redundant. Bei einer zukünftigen Wiederverwendung Ihres Softwarepakets könnte es aber zu zu gänzlich anderen Aufrufabfolgen kommen.
  • Sie benötigen ledliglich eine Ausgabe zur Fehleranalyse eines Fehlers der nie vorkommen sollte. Sie möchten aber aus Kostengründen keine Ausnahme werfen. Das Werfen einer Ausnahme müsste dokumentiert werden. Es müsste getestet werden. Es müsste eventuell lokalisiert werden.


blog | by Dr. Radut