略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: ErrorException::getSeverity

2024-11-15

ErrorException::getSeverity

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ErrorException::getSeverity获取异常的严重程度

说明

final public ErrorException::getSeverity(): int

返回异常的严重程度。

参数

此函数没有参数。

返回值

返回异常的严重级别。

范例

示例 #1 ErrorException::getSeverity() 例子

<?php
try {
    throw new 
ErrorException("Exception message"0E_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)
add a noteadd a note

User Contributed Notes 2 notes

up
0
cyjimmy264 at gmail dot com
5 years ago
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);
}
up
0
fgaab
12 years ago
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");
?>

官方地址:https://www.php.net/manual/en/errorexception.getseverity.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3