Hey Anatol

> Am 06.07.2015 um 12:06 schrieb Anatol Belski <anatol....@belski.net>:
> 
> Hi Aaron,
> 
>> -----Original Message-----
>> From: Aaron Piotrowski [mailto:aa...@icicle.io]
>> Sent: Monday, July 6, 2015 8:16 AM
>> To: internals@lists.php.net
>> Subject: [PHP-DEV] Error Subclasses
>> 
>> Hello everyone!
>> 
>> I recently pushed changes that eliminated E_EXCEPTION and allows an
>> exception type to be provided for what were fatals in PHP, while still 
>> falling back
>> to an E_ERROR if necessary.
>> 
>> Since more specific Error classes can be thrown, I'd like to propose the 
>> following
>> additions to the Error tree of exceptions: AccessError and IdentifierError.
>> 
>> AccessError - Thrown when trying attempting to call a public, private, or
>> abstract method, when statically calling a non-static method, or trying to 
>> use
>> self::, parent::, or static:: outside of a class.
>> IdentifierError - Thrown when referencing an undefined function, method, 
>> class,
>> constant, etc.
>> 
>> I’ve created a patch that implements the exceptions above as well as updating
>> all the related tests: 
>> https://github.com/trowski/php-src/tree/error-subclasses
>> <https://github.com/trowski/php-src/tree/error-subclasses>
>> 
>> This patch also broadens the usage of TypeError to include conditions such as
>> calling a method on a scalar, passing a value that does not specify a 
>> callback
>> when one is expected, and various other conditions based on an incorrect type
>> that otherwise are throwing plain Error objects.
>> 
>> This patch introduces no functional changes, only more specific types of 
>> Errors
>> are thrown from conditions that were already throwing Error objects.
>> 
>> I was hoping this could be merged before beta 1, though I’m not sure if the 
>> time
>> table is too tight.
>> 
> Thanks for the ping. While I find the idea about more specific exceptions 
> correct, I would not recommend merging it in beta1. Reason - we have no big 
> time now to verify the patch completeness, to discuss the exception names and 
> areas where it's applicable.
> 
> IMHO if it goes in, it has to be complete and well verified, maybe also voted 
> (regarding namings). As the area is very public and if we find any issues 
> later and have to rename/rework the exception names, etc. - it would be bad. 
> So 7.1 might be a better place to target. Technically it would be anyway 
> worky as those specialized extension classes will have the same parent.
> 
> Regards
> 
> Anatol

I like what Aaron did here.

I really think that should target 7.0. It's actually not breaking anything 
(really just changing the exception names).
And I really think we should have a proper Error hierarchy at the release of 
PHP 7.0. Considering it especially one of *the* features of 7.0.

But I think, at end of beta 2 or so, we really should do a final review of all 
the Errors in order to ensure everything is aptly named and used.

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

Reply via email to