|
Zuletzt kann man sich noch den Mechanismus des Ableitens von Klassen zunutze machen, um Fehler hirarchisch zu Gliedern. Man deklariert einfach eine Allgemeine Fehlerklasse ohne Inhalt und leitet davon ebenfalls inhaltslose spezielle Fehlerklassen ab. Das Folgende Beispiel implementiert eine Klasse CPoint (ähnlich CArray aus Kapitel 6), in der anstatt der einfachen Fehlermeldungen aus dem vorherigen Kapitel eben Exceptions verwendet. Es wird eine Allgemeine Fehlerklasse deklariert und davon COutOfDimension und CDimensionMissmatch abgeleitet.
Im main-Teil wird zunächst COutOfDimension gefangen. Trat dieser Fehler auf, ist die Ausnamebehandlung hiermit beendet. Dann wird CPointErrors gefangen. Dieses catch springt auch für ALLE Klassen ein, die von CPointErrors abgeleitet wurden und bis dahin noch nicht gefangen wurden. Zuletzt kommt noch die Fänger-Ellipse, die den Rest fängt, auch wenn in diesem Beispiel kein Rest anfällt.
|