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