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