• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ErrorException::getSeverity

    (PHP 5 >= 5.1.0, PHP 7)

    获取异常的严重程度

    说明

    finalpublicErrorException::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");
    ?>