首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
错误处理:拼写错误
单引号和双引号的混用
括号使用混乱
等号与赋值符号混淆
缺少美元符号
调用不存在的常量和变量
调用不存在的文件
环境配置的错误
数据库服务器连接错误
php.ini中的错误处理机制
应用DIE语句调试
自定义错误和错误触发器
异常的基本处理方法
自定义的异常处理器
处理多个异常
设置顶层异常处理器
PHP 8的新变化1—改变了错误的报告方式
PHP 8的新变化2—优化异常处理
实战演练—处理异常或错误
文件数据的写入
文件数据的读取
目录操作
文件的上传概述
文件上传
实战演练—编写文本类型的访客计算器
当前位置:
首页>>
技术小册>>
PHP8入门与项目实战(5)
小册名称:PHP8入门与项目实战(5)
简单地终止脚本并不是恰当的方式。本节将讲解如何自定义错误和错误触发器。创建一个自定义的错误处理器非常简单,用户可以创建一个专用函数,然后在PHP中发生错误时调用该函数。 自定义的错误函数的语法格式如下: ```php error_function(error_level,error_message,error_file,error_line,error_context) ``` 该函数必须至少包含error_level和error_message两个参数,另外3个参数(error_file、error_line和error_context)是可选的。各个参数的具体含义如表9-2所示。 ![](/uploads/images/20231208/12b6544bd31beeecfc82b7c5ec3350a1.png) 参数error_level定义错误规定的报告级别,这些错误报告级别是错误处理程序旨在处理的错误的不同类型。具体的级别值和含义如表9-3所示。 ![](/uploads/images/20231208/3cb56a9d1154dce9bfa615bb0c138b10.png) 下面通过实例来讲解如何自定义错误和错误触发器。 首先创建一个处理错误的函数: ```php function customError($errno, $errstr) { echo "<b>错误:</b> [$errno] $errstr<br/>"; echo "终止程序"; die(); } ``` 上面的代码是一个简单的错误处理函数。当它被触发时,会取得错误级别和错误消息。然后输出错误级别和消息,并终止程序。 创建了一个错误处理函数后,下面需要确定在何时触发该函数。在PHP中,使用set_error_handler()函数设置用户自定义的错误处理函数。该函数用于创建运行时的用户自己的错误处理方法。该函数会返回旧的错误处理程序,若失败,则返回null。具体的语法格式如下: ```php set_error_handler(error_function,error_types) ``` 其中,error_function为必需参数,规定发生错误时运行的函数。error_types是可选参数,如果不选择此参数,就表示默认值为E_ALL。 在本例中,由于针对所有错误来使用自定义错误处理程序,具体的代码如下: ```php set_error_handler("customError"); ``` 下面通过尝试输出不存在的变量来测试这个错误处理程序。 【例9.2】 ```php <?php //定义错误函数 function customError($errno, $errstr){ echo "<b>错误:</b> [$errno] $errstr"; } //设置错误函数的处理 set_error_handler("customError"); //触发自定义错误函数 echo($test); ?> ``` 运行后结果如图9-5所示。 ![](/uploads/images/20231208/1a70f35475cee94e1e83b58c94491259.png) 在脚本中用户输入数据的位置,当用户的输入无效时,需要触发错误。在PHP中,这个任务由trigger_error()完成。 trigger_error()函数创建用户自定义的错误消息。trigger_error()用于在用户指定的条件下触发一个错误消息。它与内建的错误处理器一同使用,也可以与由set_error_handler()函数创建的用户自定义函数一起使用。如果指定了一个不合法的错误类型,该函数返回false,否则返回true。 trigger_error()函数的具体语法格式如下: ```php trigger_error(error_message,error_types) ``` 其中,error_message为必需参数,规定错误消息,长度限制为1024个字符。error_types为可选参数,规定错误消息的错误类型,可能的值为E_USER_ERROR、E_USER_WARNING和E_USER_NOTICE。 【例9.3】 ```php <?php $test=5; if ($test>4){ trigger_error("Value must be 4 or below"); //创建自定义错误信息 } ?> ``` 运行后结果如图9-6所示。由于test数值为5,因此将会发生E_USER_WARNING错误。 ![](/uploads/images/20231208/cf8cab9374ead5e63178c5231b227ee9.png) 下面通过实例来讲解trigger_error()函数和自定义函数一起使用的处理方法。 【例9.4】 ```php <?php //定义错误函数 function customError($errno, $errstr){ echo "<b>错误:</b> [$errno] $errstr"; } //设置错误函数的处理 set_error_handler("customError",E_USER_WARNING); // trigger_error函数 $test=5; if ($test>4){ trigger_error("Value must be 4 or below",E_USER_WARNING); } ?> ``` 运行后结果如图9-7所示。 ![](/uploads/images/20231208/ab74f49e0b83b0b98b3c47c42f9e1594.png) 9.2.4 错误记录 默认情况下,根据php.ini中的error_log配置,PHP向服务器的错误记录系统或文件发送错误记录。通过使用error_log()函数,用户可以向指定的文件或远程目的地发送错误记录。 通过电子邮件向用户自己发送错误消息,也是一种获得指定错误通知的好办法。下面通过实例的方式来讲解。 【例9.5】 ![](/uploads/images/20231208/fff6d6a92f0ab92b7fc3ff581ef29e24.png) 运行后结果如图9-8所示。在指定的someone@example.com邮箱中将收到同样的错误信息。 ![](/uploads/images/20231208/29f5dcb8eafc3e8afcacf72de8add932.png)
上一篇:
应用DIE语句调试
下一篇:
异常的基本处理方法
该分类下的相关小册推荐:
PHP程序员的设计模式
PHP8入门与项目实战(7)
Yii2框架从入门到精通(下)
HTTP权威指南
Workerman高性能Web框架-Webman
Magento2主题开发高级实战
Laravel(10.x)从入门到精通(三)
Yii2框架从入门到精通(中)
PHP8入门与项目实战(4)
Laravel(10.x)从入门到精通(十六)
Laravel(10.x)从入门到精通(六)
PHP高性能框架-Workerman