PHP基础--错误处理

来源:互联网 发布:qt creator 运行c语言 编辑:程序博客网 时间:2024/06/04 19:06

错误分类:

1.语法错误
2.运行时错误
3.逻辑错误

系统错误:
E_ERROR//系统严重错误
E_WARNING//系统警告
E_PARSE//语法错误
E_NOTICE//系统提示

用户自定义错误:

E_USER_ERRORE_USER_WARNINGE_USER_NOTICE

其他:

E_ALL//"所有"错误E_STRICT//"严格性"语法检查错误

错误的触发:

  1. 正常触发
  2. 人工触发:trigger_error(“错误提示”,用户错误代号);

错误的显示控制:

1.设定是否显示:
在php.ini中:display_errors=On;
脚本中:ini_set('display_errors',true);//只对当前脚本有效,无需重启Apache
2.设定显示哪些错误:
php.ini中:
error_reporting=E_NOTICE//只显示NOTICE错误
error_reporting=E_NOTICE|E_WARNING//显示NOTICE和WARNING错误

实际上在开发阶段常用的是:error_reporting=E_ALL|E_STRICT//显示所有错误

记录错误日志:
1.在php.ini中设定:

log_errors=Onerror_log=php_errors.log//记录错误日志文件名

此时该文件没有给定路径,则系统会在每个文件夹下建立该文件并记录进去

error_log=syslog//此时不会记录错误日志文件而是把错误信息写入到系统错误日志中

2.在当前脚本中:

ini_set("log_errors",On);ini_set("error_log",'err1.log');//文件名后缀可以随便用ini_set("error_log",syslog);//记录到操作系统日志中

自定义错误处理:

set_error_handler("myError");function myError($errNo,$errMsg,$errFile,$errLine){//参数名可以自己命名,但顺序不能改    echo "错误号为$errNo";    echo "错误信息为$errMsg";    echo "错误文件名为$errFile";    echo "错误所在行为$errLine";}

注:
1.一定使用自定义错误处理程序,否则系统不再处理错误
2.对于严重错误,自定义错误处理函数处理不了