On Tue, Jul 24, 2012 at 7:35 AM, Nikita Popov <nikita....@gmail.com> wrote:
> On Tue, Jul 24, 2012 at 1:20 PM, Laruence <larue...@php.net> wrote:
>> Hi:
>>     As the previous threads disscussed,  I make a implemention.
>>
>>     here is the RFC: https://wiki.php.net/rfc/finally
>>
>>     any suggestions?
>
> The finally clause comes with a very strong promise that the code in
> the clause will run in absolutely any case (short of sigkill, maybe).
> In particular this means that...
> ... if a die() is execute somewhere in the try clause (or a called
> function) the finally clause must still be run.
> ... if a parse error or other fatal error occurs in the try clause (or
> called function) the finally clause must still be run.
> ... if the user interrupts the process the finally clause must still be run.
>
> Basically this requires that all of the actions that are currently
> fatal need to be converted to exceptions. E.g. Python has special
> SystemExit and KeyboardInterrupt exceptions, as well as SyntaxError
> and so on.
>
> I obviously think that PHP should adopt this model too (as it gives
> the programmer more control), but until all fatal actions are turned
> into exceptions, I'm strongly against introducing "finally". The main
> point of the clause is to have a guarantee, and that is simply
> currently not present. You actually get a better guarantee if you just
> use destructors.
>
> Nikita
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>

I definitely agree with Mr. Nikita Popov. Unless we have a
guarantee of `finally` running for PHP fatal errors, then this is not
particularly useful.

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to