PHP错误处理
1、第一种错误处理方法是修改配置文件
错误级别默认为提示所有级别的错误:error_reporting = E_ALL
把error_reporting = E_ALL改为error_reporting = E_ALL & ~E_NOTICE 表示不提示注意级别的错误。然后,重启服务生效
error_reporting = E_ALL & ~E_NOTICE 抛出任何非注意的错误,默认值
error_reporting = E_ERROR | E_PARSE | E_CORE_ERROR 只考虑致命的运行时错误、新解析错误和核心错误
error_reporting = E_ALL & ~(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE) 报告除用户导致的错误之外的所有错误
2、第二种错误处理方法是使用错误处理函数
在PHP脚本可以通过error_reporting( )函数动态设置错误报告级别
<?php error_reporting(E_ALL & ~E_NOTICE); getType($a);//注意级别 echo "1111111111111111<br>"; getType();//警告级别 echo "222222222222222222222<br>"; getType3();//错误级别 echo "333333333333333333333<br>"; ?>
自定义错误处理
自定义错误报告的处理方式,可以完全绕过标准的PHP错误处理函数,这样就可以按自己定义的格式打印错误报告,或改变错误报告打印的位置,以下几种情况可以考虑自定义错误处理:1、记下错误的信息,及时发现一些生产环境出现的问题;2、屏蔽错误;3、控制错误的输出; 4、作为调试工具
使用set_error_handler()函数来设置用户自定义错误处理
<?php //error_reporting(E_ALL & ~E_NOTICE); //在php中注册一个函数来处理错误报告,替代默认的方式 set_error_handler("myerrorfun"); $mess = ""; //自定义错误报告处理函数 function myerrorfun($error_type, $error_message, $error_file, $error_line) { global $mess; $mess.="发生错误级别为{$error_type}类型, 错误消息<b>{$error_message}</b>, 在文件<font style='color:red'>{$error_file}</font>中, 第{$error_line}行。<br>"; } getType($a); echo "1111111111111111<br>"; getType(); echo "222222222222222222222<br>"; echo "--------------------------------------------<br>"; echo $mess; ?>
错误日志
一般地,程序都会保存错误日志,用来记录程序运行时的错误信息。且错误日志都有其默认的存储位置。对于错误信息和错误日志的位置,我们都可以进行修改
在PHP.ini配置文件中,有以下几项可以对错误日志进行设置
error_reporting = E_ALL //将向PHP发送每个错误
display_errors=Off //不显示错误报告
log_errors=On //决定日志语句记录的位置
log_errors_max_log=1024 //每个日志项的最大长度
error_log=G:/myerror.log //指定错误写进的文件
在php文件中,我们可以使用函数error_log()来自定义错误信息
<?php error_log("登录失败了!"); ?>
本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。
微信扫码关注
更新实时通知