<p>Am 28.08.2015 11:08 schrieb "Toru Takubo" <<a href="mailto:takubo@e-parcel.co.jp">takubo@e-parcel.co.jp</a>>:<br>
><br>
> Hi all,<br>
><br>
> I'm trying FPC 3.0.0-rc1 and find "Continue" does not work properly<br>
> in except clause but just jump to finally clause on win64.<br>
><br>
> Here is a sample code:<br>
> ----------------------------<br>
> program sample;<br>
><br>
> {$mode objfpc}<br>
><br>
> uses<br>
>    SysUtils;<br>
> var<br>
>   i: Integer;<br>
> begin<br>
>   try<br>
>     for i:=0 to 2 do begin<br>
>       try<br>
>         Writeln(IntToStr(i));<br>
>         raise Exception.Create('');<br>
>       except<br>
>         Continue;<br>
>       end;<br>
>     end;<br>
>   finally<br>
>     Writeln('done.');<br>
>     Readln;<br>
>   end;<br>
> end.<br>
> ----------------------------<br>
><br>
> The result on win32:<br>
> ----------------------------<br>
> 0<br>
> 1<br>
> 2<br>
> done.<br>
> ----------------------------<br>
><br>
> The result on win64<br>
> ----------------------------<br>
> 0<br>
> done.<br>
> ----------------------------<br>
><br>
> Why such difference? Is this a bug?</p>
<p>It's because since 2.7.1 a different exception handling mechanism is used on Win64 (and also Win32 if enabled). But yes, it should probably be considered as a bug, so please file a bug report. As a workaround you could use a boolean variable that you set inside the handler and evaluate it afterwards.</p>
<p>Regards,<br>
Sven</p>