Re: Error handling brainstorming
| From: | Stan Vass | Date: | Sat, 04 Aug 2012 04:02:31 +0000 |
| Subject: | Re: Error handling brainstorming | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-62032@lists.php.net to get a copy of this message | ||
if we turn E_STRICT to behave exactly as E_ERROR there is no point keeping the E_STRICT level.
personally I disagree with turning something which was a pedantic notice in one version into an
unsupported feature which fatals out if you try to use it in the next.
maybe E_STRICT->E_DEPRECATED->E_ERROR
I do think there's no point keeping the E_STRICT level. In fact, there's no point keeping
any level except
- E_WARNING (strictly for developer "tips" like deprecated functionality, and not for say
division by zero errors or Stream I/O errors like it is today);
- E_ERROR (everything that's not a developer "tip" but an error, should be this type,
not a notice/warning/strict);
- E_FATAL_ERROR (direct script halt).
That's just how I see it. Today we have these instead:
- E_ERROR
- E_WARNING
- E_PARSE
- E_NOTICE
- E_CORE_ERROR
- E_CORE_WARNING
- E_COMPILE_ERROR
- E_COMPILE_WARNING
- E_USER_ERROR
- E_USER_WARNING
- E_USE_NOTICE
- E_STRICT
- E_RECOVERABLE_ERROR
- E_DEPRECATED
- E_USER_DEPRECATED
Most of those have no reason to exist and especially they have no reason to be exposed as different
severities at the user level. It seems like the severity levels have become a poor man's error
*type* codes, which are needed, and at much more granular level, but as this is a severity,
that's not the place to differentiate them.
I never spoke about E_STRICT going fatal in the next version of PHP. I'm saying this in the
context of my advice about using an error handler. I do this in my error handler (not just
development, but also production), but still I think it could be a nice long-term goal to cleaning
up PHP.
Stan