AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Exception in Create-Prozedur ohne anschließendes Destroy?
Thema durchsuchen
Ansicht
Themen-Optionen

Exception in Create-Prozedur ohne anschließendes Destroy?

Ein Thema von robvs · begonnen am 6. Feb 2007 · letzter Beitrag vom 21. Feb 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Exception in Create-Prozedur ohne anschließendes Destroy

  Alt 6. Feb 2007, 15:41
Zitat von robvs:
Mache ich ja, aber erst in den spezifischen Modulen, die mein "Hauptobjekt" erzeugen.
Dann sollstest Du deinen Code umstellen und wie Christian angemerkt hat mit Flag arbeiten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Exception in Create-Prozedur ohne anschließendes Destroy

  Alt 6. Feb 2007, 15:45
Zitat von robvs:
[...] nur in diesem Fall habe ich ein Objekt, das ich zwingend brauche, welches aber auch diverese andere Objekte direkt im Konstruktor miterzeugt. Diese können Exceptions hervorrufen und wären dann auch so weit entbehrlich, jedoch nicht mein Hauptobjekt, das weiter existieren soll. Nur wenn eine Exception in einem untergeordneten Objekt auftritt, wird auch letztendlich auch der Destruktor des Hauptobjekts aufgerufen und genau da liegt mein Problem.
Wie bereits mehrfach geschrieben: Das ist auch vernünftig so.

Aber ich habe dazu eine Frage:
Erzeugst du im Konstruktor deines "Hauptobjektes" andere, fremde, nicht zum Hauptobjekt gehörende Objekte??? Beispielsweise eine TStringliste, die sich nicht als Feld FMyStringList:TStringlist im Hauptobjekt befindet??? Das wäre doch irgendwie unschön, oder?

Wenn es aber alles Objekte sind, die zu deiner Hauptklasse gehören, also ein Teil ihrer sind, dann sollten die auch nicht unbedingt entbehrlich sein. Oder was verstehe ich falsch?
  Mit Zitat antworten Zitat
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#13

Re: Exception in Create-Prozedur ohne anschließendes Destroy

  Alt 6. Feb 2007, 16:06
Keine Sorge, die Objekte sind in der Klasse definiert.

Und doch kann es sein, dass es einige der Unterobj nicht gibt, da das eben Fallspezifisch ist. Es sind entbehrliche und optionale Teile, die nur unter gewissen Umständen verfügbar sind oder eben nicht. Und die Exceptions brauche ich, um im implementierenden Programm auf das Nichtvorhandensein im Einzelnen reagieren zu können. Die Zustände, ob ein Objekt existieren darf, überprüft das Objekt aber erst beim Erstellen selber, da diese Funktionalität in den Funtkionsumfang des Unterobjekts gehört.

Ich glaube, ich löse das irgendwie anders
  Mit Zitat antworten Zitat
Konse

Registriert seit: 20. Feb 2007
Ort: Bayern
27 Beiträge
 
Delphi 7 Professional
 
#14

Re: Exception in Create-Prozedur ohne anschließendes Destroy

  Alt 20. Feb 2007, 19:57
Hoi erstmal!!!

@robvs so eine Art Problem wie du es hast habe ich momentan auch.
In meinen Augen ist es eher ein Designproblem, wie du damit umgehen solltest, falls
eine exception im create constructor aufgerufen wird.

Denke eine Möglichkeit für dich wäre dir eine eigene Funktion keinen Konstruktor zum erstellen
zu basteln, von wo aus du deinen Konstruktor aufrufst.

schau dir einmal folgenden link an:
http://cc.codegear.com/Item/17353

für mich stellt sich eher die frage wie man so eine Exception am besten fängt.
In meinen Augen darf man dafür jedes mal für jedes Objekt (dass im Konstruktor eine Exception werfen kann)
folgendes machen:

Code:
function doSomething(const toCheck:integer):boolean;
var
lala:TCMyClass;// toCheck ist z.b. integer der nur von 5-19 gehen soll ansonsten exception
begin
  result:=false;

   try
      lala:=TCMyClass.Create(toCheck);
   except
      lala:=nil;
      exit;
   end;

   try
      lala.doWork();
   finally
     FreeAndNil(lala);
   end;
end;
Oder gibt es dafür eine elegantere Lösung, wenn man eine Exception im Konstruktor hat?


Gruß, Mario
Warum ich Klingonische Programmierer so liebe:
- A true Klingon programmer does not comment his code
- You cannot truly appreciate Dilbert unless you´ve read in the original klingon
  Mit Zitat antworten Zitat
Konse

Registriert seit: 20. Feb 2007
Ort: Bayern
27 Beiträge
 
Delphi 7 Professional
 
#15

Re: Exception in Create-Prozedur ohne anschließendes Destroy

  Alt 21. Feb 2007, 20:41
neuen thread zur frage erstellt.
Warum ich Klingonische Programmierer so liebe:
- A true Klingon programmer does not comment his code
- You cannot truly appreciate Dilbert unless you´ve read in the original klingon
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 15:07 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