title: PHP 7 inconsistently throwing errors for division by zero
body: <p>I am currently trying to understand the behavior of the new error handling in PHP 7.</p>
  
  <p>In the PHP Documentation for <code>DivisionByZeroError</code>, it states:</p>
  
  <blockquote>
    <p>DivisionByZeroError is thrown when an attempt is made to divide a
    number by zero.</p>
  </blockquote>
  
  <p>Fair enough, but it does not throw the DivisionByZeroError when the / operator is used.</p>
  
  <p>In this example, I would expect both errors to be caught:</p>
  
  <pre><code>declare(strict_types=1);
  function usesIntDiv(int $a, int $b) {
      return intdiv($a,$b);
  }
  
  function divide(int $a, int $b) {
      return $a / $b;
  }
  
  try {
      echo usesIntDiv(2,0);
  } catch (DivisionByZeroError $e) {
      echo "Caught DivisionByZeroError!\n";
  }
  
  echo "\n";
  
  try {
      echo divide(2,0);
  } catch (DivisionByZeroError $e) {
      echo "Caught DivisionByZeroError!\n";
  }
  </code></pre>
  
  <p>Instead only the first one is caught:</p>
  
  <blockquote>
    <p>Caught DivisionByZeroError!</p>
    
    <p>PHP Warning:  Division by zero in TypeError.php on line 9...</p>
  </blockquote>
  
  <p>Why?  Are there other cases like this? My understanding is that if you catch <code>Throwable</code> you will catch anything that can be raised, which would make PHP error handling a bit more manageable.  But in this case, if I use the <code>/</code> operator, it is the uncatchable PHP warning.</p>
  
  <p>Is this specific to this error (and maybe because it was triggered by an operator), or am I misunderstanding the change in error handling?</p>