The rule with try...finally is that, outside of something completely
catastrophic that destroys the program flow, is that once you enter the
try part, the finally part is guaranteed to be executed no matter how
you leave it.
Gareth aka. Kit
On 06/05/2021 18:53, Ryan Joseph via fpc-devel wrote:
On May 6, 2021, at 11:39 AM, J. Gareth Moreton via fpc-devel
<fpc-devel@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
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel