[fpc-pascal] Finally, exceptions and so on.

Ewald ewald at yellowcouch.org
Thu May 14 16:47:44 CEST 2015


On 05/14/2015 04:17 PM, Mark Morgan Lloyd wrote:
>
> So in effect, both an exit and a raise first execute the innermost
> finally, then look for procedure end or exception block repeating as
> necessary.
Yes.


> These are the only cases where syntax needs to be unwound in this way.
>

Well... There is also continue and break. The following program will
also execute the Finally statements before exiting the loop:

==== Code Begin ====
Program TestFinally;

{$mode ObjFPC}

Procedure Whatever;
Begin
    WriteLn('Finally.');
End;

Begin
    While True do
        Try
            Break
        Finally
            Whatever
        End;

    Repeat
        Try
            Continue
        Finally
            Whatever
        End
    Until True;
End.
==== Code End ====

-- 
Ewald





More information about the fpc-pascal mailing list