[fpc-devel] Defer keyword

Ryan Joseph genericptr at gmail.com
Thu May 6 19:53:03 CEST 2021



> On May 6, 2021, at 11:39 AM, J. Gareth Moreton via fpc-devel <fpc-devel at lists.freepascal.org> wrote:
> 
> In the example given:
> 
>  obj := TObject.Create;
>  defer objects.Free;
> 
> What's wrong with Pascal's existing functionality?
> 
>  obj := TObject.Create;
>  try
>    ...
>  finally
>    objects.Free;
>  end;
> 
> If there's a concern about performance penalty, maybe the compiler can work something out for simple finally blocks and just copy the code to any Exit nodes found rather than calling the pseudo-procedure that a try...finally block creates.

I didn't know try..finally even worked like that. :) I thought it was just for exceptions but I see it captures exit also. The defer keyword is nicer on the eyes I would say because it don't require wrapping the entire function in a big block of code.

So never mind then I guess. I'll start using try..finally and see how that works for me.

Regards,
	Ryan Joseph



More information about the fpc-devel mailing list