# 错误分类
[TOC]
PHP中的错误分类分为三块:**语法错误**、**运行时错误**、**逻辑错误**
>[success] 语法错误
> 是指由于违反了语言的有关规则而产生的错误。程序运行之前,都要先检查语法。如果语法有错误,就会立即报错,并且不会去执行程序代码。如:语句结尾少了一个分号、函数调用少了半个括号等
>[success] 运行时错误
> 是指程序运行过程中产生的错误。“运行时错误”又分为三种情况:“提示性错误”、“警告性错误”、“严重性错误”
>[success] 逻辑错误
> 是指程序运行得到的实际结果和预期结果不一致。“逻辑错误”通常是由于人为的错误的算法设计而引起的。对于“逻辑错误”,系统通常无法自动检测,只能通过验证结果的正确性来判断是否存在逻辑错误
## 常见错误代号
![](https://box.kancloud.cn/646a39285260c66bf025713a2b2c745f_1107x386.png)
## 错误触发分类
>[success] **系统错误触发**
> 程序运行到某行代码,确实出现了某种错误,此时系统就会自动报错,这就是触发了系统错误。系统错误是自动触发的
> **自定义错误触发**
> 根据程序的运行需要,用户自已触发错误。用户级别的错误包含:E\_USER\_NOTICE(用户提示性错误)、 E\_USER\_WARNING(用户警告性错误)、E\_USER\_ERROR(用户致命错误)
## 用户错误触发函数 trigger\_error
描述:产生一个用户级别的 error/warning/notice 错误信息。
语法:**bool trigger\_error ( string $error\_msg \[, int $error\_type \] )**
参数:
* [ ] $error\_msg:用户自定义的错误信息,长度限制在了1024个字节。
* [ ] $error\_type:用户自定义的错误等级类型。仅 E\_USER 系列常量对其有效,默认是 E\_USER\_NOTICE。
>[danger] 注意:trigger\_error()只会抛出用户自定义的逻辑错误,系统错误不会抛出,如果指定了不合法的错误类型返回 FALSE ,正确则返回 TRUE
![](https://box.kancloud.cn/0f970f92fc3f1719537cd5d4344216a1_924x587.png)
## 错误是否显示 ini\_set
如果有错误发生,那么系统是自动显示到页面,对于错误显示我们也是可以手动控制
全局修改:修改PHP.ini配置文件:display\_errors = On 修改为 **display\_errors = off** 对整个程序生效
局部修改:**ini\_set('display\_error',0)** **局部只对当前页面生效**
![](https://i.loli.net/2019/06/10/5cfe105fcc7dc79321.png)
![](https://i.loli.net/2019/06/10/5cfe11445636718255.png)
>[danger] 注意:语法错误无法屏蔽,语法错误无法屏蔽,语法错误无法屏蔽!
## 控制显示那些错误 error\_reporting
全局设置:通过PHP的配置文件php.ini中的error\_reporting配置项,可以控制哪些错误显示。
局部设置:如果只想控制本网页的错误显示,通过PHP函数ini\_set()来进行设置,不会屏蔽语法错误。
局部设置:如果只想控制本网页的错误显示,通过PHP函数error\_reporting()来进行设置
## 日志
>[success] 如果程序触发了错误,默认情况下是不会将错误记录保存起来,需要我们手动去修改PHP.ini文件开启日志保存功能
开启日志修改php.ini配置文件:log\_errors = off
日志保持地址修改php.ini配置文件:error\_log = log.log
![](https://i.loli.net/2019/06/10/5cfe29eebe69d69119.png)
![](https://i.loli.net/2019/06/10/5cfe29e189d6a55281.png)
- 基础
- 安装PHP
- 语言基础
- 变量
- 变量操作
- 超全局数组变量
- 变量作用域
- 变量传值方式
- 常量
- 数据类型
- 运算符
- 流程控制
- 文件包含
- 错误处理
- 字符串操作
- 数组
- 函数
- 进阶
- 面向对象
- 提高
- TP
- 安装项目
- 框架基础知识
- 命令创建模块
- URL生命周期
- 路由操作
- Request请求类
- 参数绑定
- 依赖注入
- 模板操作
- 查询操作
- 添加操作
- laravel
- ☆目录结构
- CSRF攻击
- ☆路由
- ☆控制器
- ☆请求类
- ☆视图
- ☆模板继承
- ☆表单验证
- ☆DB类
- ☆模型
- ☆数据库迁移
- 类型、修饰、索引
- ☆数据填充
- ☆数据分页
- ☆session处理
- ☆中间件
- ☆缓存操作
- ☆文件上传
- ☆接口操作
- ☆扩展插件
- restful
- 工作
- 工作记录
- QQ登录
- 新浪登录
- 微信登录
- sphinx搜索
- 数据库
- MySQL
- ☆数据库操作
- ☆数据表操作
- ☆数据的操作
- 待修改
- 优化
- 存储引擎选择
- 列表类型选择
- 范式
- 慢日志查询
- 精准时间记录查询
- 计划任务 explain
- 索引
- 索与事务
- 查询缓存
- 存储过程
- 触发器
- 分区
- 分表
- sphinx
- 读写分离
- 搜索优化
- 网站静态化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服务器
- Linux
- 目录结构
- 常用命令
- VIM编辑器
- 用户与用户组
- 权限管理
- 运行级别
- 网络模式
- ssh
- 软件安装
- 计划任务
- Ubuntu
- 编译PHP7.3
- 编译MySQL
- 编译Nginx
- apache虚拟机配置
- 安装composer
- Nginx
- Git