ErrorException::getSeverity
(PHP 5 >= 5.1.0, PHP 7)
获取异常的严重程度
说明
final public ErrorException::getSeverity(void): int
返回异常的严重程度。
参数
此函数没有参数。
返回值
返回异常的严重级别。
范例
Example #1 ErrorException::getSeverity()例子
<?php
try {
    throw new ErrorException("Exception message", 0, E_USER_ERROR);
} catch(ErrorException $e) {
    echo "This exception severity is: " . $e->getSeverity();
    var_dump($e->getSeverity() === E_USER_ERROR);
}
?>
以上例程的输出类似于:
This exception severity is: 256 bool(true)
function friendly_severity($severity) {
  $names = [];
  $consts = array_flip(
    array_slice(
      get_defined_constants(true)['Core'], 0, 15, true));
  foreach ($consts as $code => $name) {
    if ($severity & $code) $names []= $name;
  }
  return join(' | ', $names);
}Try this as replacement for error_reporting(...)
<?php
  function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    $severity =
      1 * E_ERROR |
      1 * E_WARNING | 
      0 * E_PARSE |
      0 * E_NOTICE |
      0 * E_CORE_ERROR |
      0 * E_CORE_WARNING |
      0 * E_COMPILE_ERROR |
      0 * E_COMPILE_WARNING | 
      0 * E_USER_ERROR |
      0 * E_USER_WARNING |
      0 * E_USER_NOTICE |
      0 * E_STRICT |
      0 * E_RECOVERABLE_ERROR |
      0 * E_DEPRECATED |
      0 * E_USER_DEPRECATED;
    $ex = new ErrorException($errstr, 0, $errno, $errfile, $errline);
    if (($ex->getSeverity() & $severity) != 0) {
            throw $ex;
        }
  }
  set_error_handler("exception_error_handler");
?>
