Re: [VOTE] Allowing use of exceptions in the engine

From: Date: Sat, 07 Dec 2013 23:31:41 +0000
Subject: Re: [VOTE] Allowing use of exceptions in the engine
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-70526@lists.php.net to get a copy of this message
On Sat, Dec 7, 2013 at 10:47 PM, Adam Harvey <aharvey@php.net> wrote:

> On 7 December 2013 04:57, Nikita Popov <nikita.ppv@gmail.com> wrote:
> > I opened the vote on the "Exceptions in the engine" RFC:
> >
> >     https://wiki.php.net/rfc/engine_exceptions#vote
> >
> > The vote has three options, "Yes", "No" and "Yes, without
> > E_RECOVERABLE_ERROR changes". The last option is a version of the
> proposal
> > without BC issues.
> >
> > And regarding the vote: If you are in favor of the proposal in general,
> but
> > want to have it in PHP 6 rather than PHP 5.6, then vote "No" here. If it
> > fails now, someone can revive this once the time for PHP 6 has come.
>
> To be clear: I've voted -1 for exactly this reason, and this reason
> alone. I don't think implementing this piecemeal (without the
> E_RECOVERABLE_ERROR changes) is the right way to go — I would prefer
> to have the whole thing as part of a 6.0 release, rather than
> potentially confusing users with a partial implementation.
>

If you're concerned about E_RECOVERABLE_ERROR in particular I should point
out that there are very few recoverable fatals in the engine. Actually, the
only common recoverable error is the typehint violation error. The others
are along the lines of "Instantiation of 'Closure' is not allowed" or
"Closure object cannot have properties" - not something you usually
encounter. For a full list see
http://lxr.php.net/search?q=E_RECOVERABLE_ERROR&defs=&refs=&path=Zend&hist=&project=PHP_TRUNK.
So I don't think that E_RECOVERABLE_ERROR is a particularly large loss in
itself - but the "partial implementation" argument presumably still stands
even without it (won't be able to port all fatal errors at once, after all.)

Nikita


Thread (19 messages)

« previous php.internals (#70526) next »