[fpc-devel] Different handling of try..except depending on OS?
    Bart 
    bartjunk64 at gmail.com
       
    Wed Dec  9 23:45:21 CET 2020
    
    
  
Hi,
Consider this code:
program Test;
{$apptype console}
{$ifdef fpc}
{$mode objfpc}
{$endif fpc}
{$R+}
var
  Arr: array[1..2] of integer;
  i: Integer;
begin
  i:=5;
  try
    try
      Arr[i] := 1;
    except
      writeln('Except block');
    end;
  finally
    writeln('Finally block');
  end;
end.
Compiled with fpc 3.2.0 on Windows it will output (both 32 and 64 bit):
Runtime error 201 at $004015F1
  $004015F1
  $00407307
Compiled with fpc 3.2.0 on linux X86_64 it will output
Except block
Finally block
On Windows you need to include the sysutils unit to execute the except
and finally block.
Note 1:  fpc 3.0.4 on Windows generates the same outpus as 3.2.0 on Linux...
Note 2: Delphi 7 behaves like 3.2.0
Is there any explanation for that?
Related forum discussion:
https://forum.lazarus.freepascal.org/index.php/topic,52469.0/topicseen.html
-- 
Bart
    
    
More information about the fpc-devel
mailing list