I recently came across code another developer had done and they write try..finally blocks like the following:
procedure TSomeClass.DoSomething: string;
var
myClass: TMyClass;
begin
myClass := nil;
try
myClass := TMyClass.Create;
// Do stuff
finally
myClass.Free;
end;
end;
Were I would write it as follows:
procedure TSomeClass.DoSomething: string;
var
myClass: TMyClass;
begin
myClass := TMyClass.Create;
try
// Do stuff
finally
myClass.Free;
end;
end;
I always create the object on the line before the try and would not set the object to nil just before creating it. I believe setting the object to nil before creating it and putting the create after the try to not be the correct way and do not know the reasoning why the developer does it like this.