PHP的错误处理
Posted Autumn の Box
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP的错误处理相关的知识,希望对你有一定的参考价值。
一、php的错误分类
1.语法错误
语法错误不会执行PHP脚本文件中的任意代码
2.运行时错误
在代码执行的过程当中发生的错误
3.逻辑错误
不会发生语法错误,不会发生运行时错误,会显示错误的结果
通常情况下,这种错误最难排错
二、错误报错级别
级别常量 错误值 错误报告描述
E_ERROR 1 致命的运行时错误(阻止脚本执行)
E_WARNING 2 运行时警告(非致命性错误)
E_PARSE 4 从语法中解析错误
E_NOTICE 8 运行时注意消息(可能是或可能不是一个问题)
E_CORE_ERROR 16 PHP启动时初始化过程中的致命错误
E_CORE_WARNING 32 PHP启动时初始化过程中的警告(非致命性)
E_COMPILE_ERROR 64 编译时致命错误
E_COMPILE_WARNING 128 编译时警告(非致命性)
E_USER_ERROR 256 用户自定义的致命错误
E_USER_WARNING 512 用户自定义的警告
E_USER_NOTICE 1024 用户自定义的提醒(经常是bug)
E_STRICT 2048 编码标准化警告(建议如何修改以向前兼容)
E_ALL 6143 所有的错误、警告和注意信息
三、更改错误报告级别
1.PHP的配置文件php.ini中:
display_errors=On/Off (是否显示错误报告)
error_reporting=E_ALL (更改要显示的错误报告级别)
2.在代码中修改:
ini_set(‘display_errors‘,‘off‘);
error_reporting(0); / error_reporting(E_ALL);
四、用户自定义错误报告的处理方式
①trigger_error(‘提示信息‘,E_USER_ERROR/WARNING/NOTICE);
②set_error_handler(回调函数):
回调函数所需的参数:
errorno:错误报告级别的常量值
errorstr:错误信息
errorfile:错误发生的文件
errorline:错误发生的行号
注意:当前文件每发生一次错误,都会调用一次该回调函数
例:
set_error_handler(‘myerror‘);
function myerror($errorno,$errorstr,$errorfile,$errorline){
}
五、保存错误日志到指定文件中
ini_set(‘error_reporting‘,‘E_ALL‘);
ini_set(‘log_errors‘,‘on‘); //开启外部保存错误信息
ini_set(‘error_log‘,‘D:/error.log‘); //设置保存的位置
error_log(‘自定义错误信息‘); //代码中使用该函数即可将错误日志写入到D:/error.log文件中
注意:不可关闭error_reporting的错误报告
以上是关于PHP的错误处理的主要内容,如果未能解决你的问题,请参考以下文章