PHP错误级别
值 | 常量 | 描述 |
---|---|---|
2 | E_WARNING | 非致命的 run-time 错误。不暂停脚本执行。 |
8 | E_NOTICE | run-time 通知。在脚本发现可能有错误时发生,但也可能在脚本正常运行时发生。 |
256 | E_USER_ERROR | 致命的用户生成的错误。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_ERROR。 |
512 | E_USER_WARNING | 非致命的用户生成的警告。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_WARNING。 |
1024 | E_USER_NOTICE | 用户生成的通知。这类似于程序员使用 PHP 函数 trigger_error() 设置的 E_NOTICE。 |
4096 | E_RECOVERABLE_ERROR | 可捕获的致命错误。类似 E_ERROR,但可被用户定义的处理程序捕获。(参见 set_error_handler()) |
8191 | E_ALL | 所有错误和警告。(在 PHP 5.4 中,E_STRICT 成为 E_ALL 的一部分) |
错误触发器:如果符合某个条件,则规定发生了某种级别的错误,并规定错误提示信息
错误处理器:如果发生了某种级别的错误,则执行某个函数,对错误进行处理
实例代码:
在本例中,如果 "test" 变量大于 "1",则发生 E_USER_ERROR 错误。如果发生了 E_USER_ERROR,我们将使用我们自定义的错误处理程序 my_error 并结束脚本:
<span style="font-size:18px;"><?php
//定义了一个函数(我用于处理错误的函数,这个函数名可以自定义)
function my_error($error_level,$error_message,$error_file,$error_line,$error_context){
//错误处理函数中,前两个参数必选,后3个参数可选
echo "<font size='7' color='red'>错误级别是:[$error_level]<br/>错误信息是:[$error_message]<br/>错误文件是:[$error_file]<br/>错误发生的行数是:[$error_line]<br/>错误发生时在用的每个变量以及它们的值是(返回的是一个数组):[$error_context]<br/> </font><br/>";
exit();
}
//上面的代码是一个简单的错误处理函数。当它被触发时,它会取得错误级别和错误消息。然后它会输出错误级别和消息,并终止脚本。
//set_error_handler为错误处理函数,函数名固定
//下面这句话的含义是 : 如果出现了 E_WARNING这个级别的错误,就去调用my_error函数.
set_error_handler("my_error",E_USER_ERROR);
//当set_error_handler只有一个参数时,表示只要出现错误就执行my_error函数
//set_error_handler("my_error");
//错误触发器
$test=2;
if ($test>1)
{
//调用触发器,同时指定错误级别和错误提示信息.
//此处的错误类型可以有以下几种:E_USER_ERROR、E_USER_WARNING、E_USER_NOTICE
trigger_error("Value must be 1 or below",E_USER_ERROR);
//只调用触发器,指定错误提示信息,错误级别输出默认值.
//trigger_error("Value must be 1 or below");
}
?></span>