php错误处理
1、介绍
在 PHP 中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息。
有三种不同的处理方法:
- die函数
- 自定义错误和错误触发器
- 错误报告
2、 die函数
die() 函数输出一条消息,并退出当前脚本。
die(status)
如果 status 是字符串,则该函数会在退出前输出字符串。
如果 status 是整数,这个值会被用作退出状态。退出状态的值在 0 至 254 之间。退出状态 255 由 PHP 保留,不会被使用。状态 0 用于成功地终止程序。
注释:如果 PHP 的版本号大于等于 4.2.0,那么在 status 是整数的情况下,不会输出该参数。
$site = "http://www.w3school.com.cn/";
fopen($site,"r")
or die("Unable to connect to $site");
3、创建自定义错误处理器
3.1 自定义处理函数
error_function(error_level,error_message, error_file,error_line,error_context)
- error_level 必需。为用户定义的错误规定错误报告级别。必须是一个数字。参见下面的表格:错误报告级别。
- error_message 必需。为用户定义的错误规定错误消息。
- error_file 可选。规定错误发生的文件名。
- error_line 可选。规定错误发生的行号。
- error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。
3.2 错误报告级别
值 常量 描述
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 的一部分)
3.3 设置错误处理函数
// 设置错误处理函数
set_error_handler("customError",E_USER_WARNING);
- customError是自定义的错误处理函数
3.4 触发错误
基于trigger_error函数
trigger_error("变量值必须小于等于 1",E_USER_WARNING);
(1)参数1为字符串类型,必要参数,表示错误提示
(2)参数2为非必要参数,能够规定所触发的错误类型。
4、错误记录
在默认的情况下,根据在 php.ini 中的 error_log 配置,PHP 向服务器的记录系统或文件发送错误记录。通过使用 error_log() 函数,您可以向指定的文件或远程目的地发送错误记录。