Exception Hierachie
-
Ich habe folgendes Problem:
Da ich mit den Exceptions von C/C++ unzufrieden war/bin, habe ich mir überlegt meine eigene Exception Hierachie zu Programmieren. Jetzt stehe ich vor folgendem Problem: Ich will, dass es so wie in Java oder C++/CLI ist dass man mit "catch(Exception e)" alle Exceptions einfängt und z.B. mit "catch(SystemException e)" alle System-Exceptions einfängt (man sich also auf die jeweiligen Exceptions immmer mehr spezialisieren kann). Ich habe als "BasisException" die Klasse
SOFTWARE_INTERRUPT
und davon (um einen ersten Test zu wagen) die Klasse
testSOFTWARE_INTERRUPT
abgeleitet. Ich will nun wenn ich folgendes schreibe "catch (SOFTWARE_INTERRUPT SI)" sowohl SOFTWARE_INTERRUPT als auch testSOFTWARE_INTERRUPT fangen. Leider funktioniert das so aber nicht. Stattdessen fange ich beide Klassen wenn ich "catch(testSOFTWARE_INTERRUPT SI)" schreibe.
Eigentlich ist das ja auch logisch(Polymorphie). Aber muss ich jetzt wirklich meine Hirachie von unten nach oben aufziehen also die Klasse SOFTWARE_INTERRUPT von der Klasse testSOFTWARE_INTERRUPT ableiten damit das ganze funktioniert?Hoffe mir kann jemand weiterhelfen und freue mich schon auf antworten!
da fällt mir gerade auf, dass das WinAPI Forum wohl nicht unbedingt das richtige ist...
Sorry habs zu spät bemerkt
-
Die Exceptionhierachie funktioniert in C++ komplett gleich wie in Java oder so ziemlich jeder anderen Sprache.
Das was du schreibst ist falsch. Wenn Derived von Base erbt, dann fängt ein
catch(Base& e)
sowohl Base als auch Derived.