php中错误和异常处理的机制二(错误处理器和错误触发器)

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>



你可能感兴趣的:(php中错误和异常处理的机制二(错误处理器和错误触发器))