Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: Der Konstruktor ist abgestürzt - Wie gehe ich im Destruktor am besten vor?

  Alt 12. Apr 2013, 08:46
Um ganz ehrlich zu sein: Mir ist so ein Pseudo-Konstruktor, dessen eigentliche Arbeit dann im Endeffekt wieder von einer ganz normalen Instanzmethode übernommen wird, auch nicht wirklich sympathisch. Bislang sehe ich nur, dass man es besser nicht tun sollte, aber einen wirklichen Grund habe ich nicht.

Noch vor der ersten Zeile im Konstruktor sind Instanzmember bereits mit einem Standardwert initialisiert. Zahlen sind Null, Objekte nil und Strings sind '' (richtig?). Meine Frage ganz am Anfang kam von Verwirrung und der falschen Annahme, das sei nicht der Fall.


In meinem ganz konkreten Fall hat der Konstruktor die Exception sogar absichtlich geworfen: Unter den gegebenen Umständen war eine Erstellung eines sinnvollen Objekts nicht möglich. Kurioserweise war die Erstellung dieses Objekts (auf Umwegen) wiederum Bestandteil des Konstruktor eines anderen Objekts.
Wo liegt nun der Unterschied, wäre der Konstruktor hier nicht mit einer Exception ausgestiegen sondern hätte ein quasi nutzloses Objekt mit einem Flag "ichBinNichtZuGebrauchen:Bool" ausgespuckt? Im Endeffekt ist das doch noch aufwändiger und unübersichtlicher (und wahrscheinlich sogar fehleranfälliger) zu handhaben als eine "stinknormale" Exception.

Geändert von Der schöne Günther (12. Apr 2013 um 08:48 Uhr)
  Mit Zitat antworten Zitat