Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: exception handling im konstruktor

  Alt 21. Feb 2007, 22:18
Zitat von Konse:
wie würdet ihr am besten eine Exception im construktor handlen?
Was gibt es da zu behandeln. Wenn im Konstruktor eine Exception auftritt wird sofort in the Destruktor gesprungen und das Objekt freigegeben. Danach wird die Exception weitergeleitet so dass der Konstruktor-Aufrufer diese auch mitbekommt. Zugegeben, die Klasse wird erstmal instanziert und dann wieder freigegeben. Aber im Fehlerfall ist die dabei verschwendete Zeit im Vergleich zum Auslösen einer Exception nicht messbar.

Delphi-Quellcode:
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; { *** Das ist nutzlos, da du auf lala nicht mehr zugreifst und es seinen Sichtbarkeitsbereich verlässt }
      exit;
   end;

   try
      lala.doWork();
   finally
     FreeAndNil(lala);
   end;
end;
  Mit Zitat antworten Zitat