Kindklasse herausfinden
-
Hallo
hoffe mir kann jemand einen Tipp geben wie man die Klasse anhand der Besisklasse feststellen kann.
Folgende Situation - ich habe eine Basisklasse "B" und viele davon abegleitete Klassen, z.B. "C", "D", "E". Diese klassen werden nun als exceptions geworfen, aber fangen tue ich nur die Basis "B".
Wie finde ich jetzt heraus welche klasse tatsächlich geworfen wurde? -Habe es mit
typeid (*this).name()versucht, aber das Ergebnis ist immer die Basisklasse selbst. Gibt es noch andere Möglichkeiten?
danke
-
Feld schrieb:
hoffe mir kann jemand einen Tipp geben wie man die Klasse anhand der Besisklasse feststellen kann.
Am Besten gar nicht.
Feld schrieb:
Wie finde ich jetzt heraus welche klasse tatsächlich geworfen wurde?
Fang sie halt nicht als Basis!?
try { ... } catch (const C&) { ... } catch (const D&) { ... } catch (const E&) { ... }
-
Ganz einfach einen Handler für den konkreten Ausnahmetypen hinzufügen. Eine wilde
dynamic_castOrgie ist (wie fast immer) quatsch.