On Tue, Feb 17, 2015 at 11:14 AM, Bob Weinand <bobw...@hotmail.com> wrote:

> > Am 14.02.2015 um 00:25 schrieb Nikita Popov <nikita....@gmail.com>:
> >
> > On Mon, Oct 6, 2014 at 11:53 PM, Nikita Popov <nikita....@gmail.com>
> wrote:
> >
> >> Hi internals!
> >>
> >> During the PHP 5.6 development cycle I have proposed an RFC [1] that
> >> suggested the use of exceptions instead of fatal errors in the engine.
> At
> >> the time the proposal was declined, because the change was judged too
> >> intrusive for a minor version.
> >>
> >> As such I'm re-proposing this RFC for inclusion in PHP 7:
> >>
> >>    https://wiki.php.net/rfc/engine_exceptions_for_php7
> >>
> >> The RFC text is essentially the same as previously, with the primary
> >> difference being that parse errors are now converted to exceptions as
> well.
> >> This was previously not possible due to limitations in the compiler
> design.
> >>
> >> Thanks,
> >> Nikita
> >>
> >>  [1]: https://wiki.php.net/rfc/engine_exceptions
> >>
> >
> > Feature freeze is not so far away now, so I'd like to bring this RFC up
> > again and proceed to voting shortly. There are two primary open
> questions:
> >
> > * Subclassing: Should there be more specific subclasses of
> EngineException
> > for particular errors?
> > * Superclassing: Should EngineException inherit from Exception (and as
> > such be subject to catch(Exception)) or should we introduce some kind of
> > special super-class that is not caught by default (like
> > Catchable/Throwable)?
> >
> > I don't think we can implement a high-quality subclassing scheme in a
> > timeframe for PHP 7, as such I would suggest to postpone this (if we
> > actually want to do it) to a later point in time. We can introduce
> > subclasses without BC issues in a minor version.
> >
> > The question of whether EngineException should inherit from Exception is
> > something we do have to consider now. Personally I prefer not introducing
> > any special exception types that aren't caught by default. I think that
> > would only make sense for errors that could occur literally everywhere
> > (like memory limit or timeout), but these are not handled by this RFC for
> > technical reasons. If someone has a strong opinion on this, I might make
> it
> > a voting option.
> >
> > Commentary on these, and also any other relevant points is very welcome!
> >
> > Thanks,
> > Nikita
> >
> > PS: The patch attached to the RFC is very outdated. I plan to only update
> > it to current master once the RFC passes (if it does), as I already had
> to
> > practically rewrite it a few times.
>
> Hey,
>
> For subclassing I totally agree that we should postpone this (if we want
> this at all).
>
> I think EngineException should inherit from Exception. You usually only
> catch Exception in catch-all handlers to display, log etc. the backtraces.
> In all these cases, you're very likely to want to catch the EngineException
> too, without a second catch block where the catch body is duplicated.
> I can't really think of a catch-all block where you'd explicitly don't
> want to handle EngineException. And if it'd really be the case, you still
> can do an instanceof check and rethrow if needed...
>

I think that would be a huge BC break. I see a lot of code just catching
\Exception at various customers and opensource projects. EngineException
should not be a child of Exception.

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

Reply via email to