Re: Deprecation of the Error Control Operator (@ symbol)
| From: | Sara Golemon | Date: | Tue, 05 Jan 2016 18:22:49 +0000 |
| Subject: | Re: Deprecation of the Error Control Operator (@ symbol) | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-90123@lists.php.net to get a copy of this message | ||
On Tue, Jan 5, 2016 at 10:09 AM, Ferenc Kovacs <tyra3l@gmail.com> wrote:
>> > I don't think that would work out too well. Remember that many projects
>> > have
>> > error handles which convert all errors to exceptions: if you disable @
>> > in
>> > those projects, wouldn't their code break?
>> >
>> Nope.
>> Supressed errors already reach custom error handlers:
>> https://3v4l.org/TG8aA
>
> sure and most projects check the error_reporting() level against the $errno
> like in the manual:
> if (!(error_reporting() & $errno)) {
> // This error code is not included in error_reporting
> return;
> }
>
> @ changes the error_reporting() level for that particular call, so those
> custom error handler won't throw exceptions for the suppressed errors but
> when you remove/nop @ their code would throwing stuff left and right.
>
Today I learned... Okay, def a problem (for a specific set of
circumstances). And one which makes me more amenable to Ze'ev
declare() suggestion (on a per-request bases, not per-file) as anyone
modifying a project's codebase for testing can also modify it to
suppress those exceptions as needed and/or just not enable the custom
error handler.
-Sara