Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C++] Exception-Handling (https://www.delphipraxis.net/37402-%5Bc-%5D-exception-handling.html)

Chewie 5. Jan 2005 14:30


[C++] Exception-Handling
 
Kann es sein, dass C++-Exception-Handling totaler Müll ist, weil es noch nicht einmal Vererbung bei der Catch-Klausel erkennt? Naiv, wissend wie das Exception-Handling bei Java funktioniert, versuche ich mich an C++ und definiere mir zunächst eine Exception-Klasse. Davon leite ich ein paar spezielle Exceptions ab. Die speziellen Exceptions setzen alle u.a. einen String in der Klasse, eine Get-Methode für den String ist in der Exception-Basisklasse definiert.
Nun will ich alle Exceptions abfangen, so wie ich es von Delphi oder auch Java her kenne:

Code:
try {
  //irgendein throw
}
catch (Exception& e) {
  printf(e.report());
}
Doch was muss ich sehen? Wird wirklich eine Exception von Typ Exception ausgelöst, klappt es, wird aber eine von einem von Exception abgeleiteten Typ ausgelöst, greift sie nicht. Und alle abgeleieten Typen zu überprüfen, kann es ja nicht sein.

Ich dachte immer, eines der Grundprinzipien der OOP wäre, dass ein Objekt B, das von einer Klasse A erbt, ebenfalls ein Objekt der Klasse A ist.
Doch entweder bin ich zu doof für C++ und hab etwas nicht richtuig kapiert oder C++ setzt diese Richtline nicht korrekt um.
Wenn zweiteres zutrifft, so frag ich mich, wie um alles in der Welt man in C++ ordentlich objektoriniert programmiert, da Fehlerbehandlung ja ein nicht unwesentlicher Teil davon ist und ein Exception-Handling dieser Art meiner Meinung nach wenig brauchbar ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz