Gehe ich recht in der Annahme, dass diese zwei Teile Codes prinzipiell das gleiche machen, d.h. ich mir in der zweiten Variante dden finally-Block sparen kann, ASomething aber trotzdem auf jeden Fall freigebe?
Code: Alles auswählen
procedure Test;
var
ASomething: TSomething;
begin
try
try
ASomething := TSomething.Create;
ASomething.DoSomething;
//....
finally
ASomething.Free;
end;
except
on E: Exception do ShowMessage(...);
end;
end;
Code: Alles auswählen
procedure Test;
var
ASomething: TSomething;
begin
try
ASomething := TSomething.Create;
ASomething.DoSomething;
//....
except
on E: Exception do ShowMessage(...);
end;
ASomething.Free;
end;