Fehlerbehandlung und Robustheit
Invariantentest
- in traditioneller C-Programmierung wird in Entwicklungsphase oft vom
assert-Mechanismus Gebrauch gemacht
- Aufruf von void assert(int expression); führt im Falle
(expression == 0) zu einer Ausgabe der Form
Assertion failed: expression, file xyz, line nnn
Begriff der Invariante:
- Wert der Elemente eines Objektes heißt Zustand des Objektes
- Initialisierung sollte ein Objekt in einen 'wohldefinierten' Zustand
bringen
- 'wohldefinierter' Zustand eines Objektes soll nach (im strengeren Sinne
sogar während) der auf dieses Objekt angewandten Operationen aufrechterhalten
werden bis zur Löschung des Objektes (Funktionen, die auf Daten eines Objektes
arbeiten und aufgerufen werden können, während Zustand des Objektes nicht
'wohldefiniert' ist, sollten nicht an die öffentliche Schnittstelle)
- Regeln (Daten, Bedingungen) zum Festlegen der Grenzen, innerhalb derer
sich ein Objekt in 'wohldefiniertem' Zustand befindet, kennzeichnen
die Invariante der Objekte einer Klasse