Re: Fix division by zero to throw exception (round 2)
| From: | Bob Weinand | Date: | Thu, 02 Jul 2015 00:26:06 +0000 |
| Subject: | Re: Fix division by zero to throw exception (round 2) | ||
| References: | 1 2 3 4 5 6 7 8 9 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-86991@lists.php.net to get a copy of this message | ||
> Am 29.06.2015 um 19:14 schrieb Andrea Faulds <ajf@ajf.me>:
>
> Hi again,
>
>> On 29 Jun 2015, at 18:02, Bob Weinand <bobwei9@hotmail.com> wrote:
>>
>> Yes, it generally makes sense...
>> Then I have other questions:
>>
>> - Why do we then still have a Warning? Either we have well-defined behavior, or we throw an
>> exception. Well-defined behavior *plus* a warning is IMO non-sense.
>
> That’s weird, yeah. We don’t throw warnings for the math functions when you give them odd
> inputs, e.g. sin(INF) is just NAN, no warning.
>
> I think removing it would make sense.
>
>> - Is it intentional for intdiv and % to throw an Exception instead of Error or some more
>> specific DivisionByZeroError or similar? (yes, I know, Error is only very recent, but the question
>> still needs to be asked).
>
> Hmm. Using Error might make some sense given it used to raise E_WARNING. I think
> DivisionByZeroError sounds like a good idea.
Hey,
I just committed that to master…
But I noticed that intdiv(PHP_INT_MIN, -1) isn't very well suited for a DivisionByZeroError.
What do you think about adding an ArithmeticError for that case (and making DivisionByZeroError
subclass of it)?
That ArithmeticError could then be reused for negative bitshifts, which would solve the question
what to do with that too.
Thanks,
Bob