一、php中错误和异常的区分:
1、 PHP错误:是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查,甚至无法运行的情况。平时遇到的warming、notice都是错误,只是级别不同而已。
2、 PHP异常:一般是业务逻辑上出现的不合预期、与正常流程不同的状况,不是语法错误。
二、错误触发器:如果符合某个条件,则规定发生了某种级别的错误,并规定错误提示信息
错误处理器:如果发生了某种级别的错误,则执行某个函数,对错误进行处理。
<?php
function my_error($error_level,$error_message,$error_file,$error_line,$error_context){
//错误处理函数中,前两个参数必选,后3个参数可选
echo "错误级别是:[$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");
}
?>