PHP 简介06-错误处理
1.错误处理
1.分类
PHP的错误编码:
1.error错误 错误号:1
致命错误,一旦碰到error错误,程序立马终止
2.warning错误 错误号:2
警告错误,一旦碰到warning错误,程序会给出错误警告,但不会终止程序的执行
3.notice错误 错误号:8
提示错误,可能是错误,也可能不是错误,不会终止程序的执行
2.错误的屏蔽
在上线项目中,不允许出现任何错误
1.方法一:
通过错误抑制符@来屏蔽当前某一变量的错误
2.方法二:(推荐)
通过error_reporting函数来屏蔽函数之后的错误
该函数一般写在程序的最前面
影响范围:该文件
error_reporting(E_ALL) 显示所有的错误
error_reporting(E_WARNING) 只显示warning级错误
error_reporting(E_NOTICE) 只显示notice级错误
error_reporting(E_ERROR) 只显示error级错误,一般屏蔽不掉
error_reporting(E_ALL ^E_NOTICE)
除了notice级错误,其余都报
error_reporting(E_ALL & ~E_NOTICE)
error_reporting(E_ALL ^E_EARNING)
除了warning级错误,其余都报
error_reporting(E_ALL & ~E_WARNING)
3.方法三:
通过修改配置文件,来屏蔽错误
影响范围:整个服务器
配置文件位置:wamp\bin\apache\apache2.4.18\bin\php.ini
注意:修改任意配置后,都需要重启服务器
1 | // 修改内容2: |
4.方法四:
通过函数临时修改配置文件ini_get() 或 ini_set()
影响范围:当前文件
1 | var_dump( ini_get('display_errors') ); |
3.PHP错误日志
日志函数:error_log(日志信息,日志类型,目标文件)
日志类型:如果是写入日志,选择3
目标文件:当日志类型为3,才需要第三个参数
1 | $a = 10; |
3.逻辑错误的处理
逻辑错误:既不报错,也不终止程序,主要因为设计错误
两种缩小排错范围的方法:
1.断点法:通过die/exit中断程序的执行,在die之前输出相关变量,查看是否与预想数值符合
2.注释法:通过注释局部代码,查看结果是否有变化