AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

[C++] Exception-Handling

Ein Thema von Chewie · begonnen am 5. Jan 2005
Antwort Antwort
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

[C++] Exception-Handling

  Alt 5. Jan 2005, 15:30
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.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 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