On Mon, Jul 27, 2015 at 2:03 PM, Anthony Ferrara <ircmax...@gmail.com> wrote:
> Rowan,
>
>> This is certainly some people's concern, but Anatol has raised a subtly
>> different consistency-related point, which is this:
>>
>> Since we have no policy for what kinds of Throwable should be emitted in
>> what circumstance, throwing anything in this function sets a precedent which
>> will have to be incorporated in any future plan.
>>
>> Assuming nobody is fundamentally against ever adding Throwables to core
>> functions, there are a minimum number of questions that need to be agreed
>> before adding the first one:
>> - when should we inherit from Error and when from Exception?
>
> IMHO, Errors signify programmer error, where Exceptions signify
> unknown or runtime errors. Meaning that an Error should always be a
> problem with your code, but an Exception could be a systems problem, a
> user problem or a problem in your code.
>
> While that's slightly off-topic to this discussion, it frames which
> type random_* would throw pretty clearly (Exception).
>
>> - is it ever OK to throw a plain Error or Exception (thus forcing users into
>> the otherwise bad practice of catching those base classes)?
>
> For now, I think that's a good practice. It doesn't constrain us from
> sub-typing down the road (7.1, etc), but it also lets us build the
> support in today.
>
> For example, if we throw Exception, in 7.1 we could make it
> php\RandomException in 7.1 without issue (all we need to get right is
> the hierarchy parent).
>
>> - if not throwing the base class, how specific should sub-classes be? (i.e.
>> a framework for defining the hierarchy, not necessarily the hierarchy
>> itself)
>
> I think this is something that should be RFC'd for 7.1. I don't think
> that limits us here though.
>
>> If we can get agreement on those points in time for 7.0, fine, but time is
>> very tight, and the window for such discussions has theoretically closed...
>
> I think the only real agreement we need is Error vs Exception. If we
> can agree on one of those, we can do the rest in 7.1 without worrying
> about BC...
>
> Anthony

I'm fine with either Error or Exception. I'd prefer Exception (easier
to write a sane backport for PHP 5.6) but I leave this decision in the
hands of others.

    /**
     * Slightly insane PHP 5 backport but it works
     */
    class Error extends Exception { } // Done!

Does anybody feel particularly strong about one or the other?

If so, should we set up a vote somewhere? (I don't vote karma on RFCs
etc. so I don't know if the existing infrastructure would work.)

If not, can we get PR 1397 & 1398 merged? :)

Regards,

Scott Arciszewski
Chief Development Officer
Paragon Initiative Enterprises <https://paragonie.com>

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

Reply via email to