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;