PHP错误处理
时间:6年前 阅读:5082
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,我们将及时处理。

微信扫码关注
更新实时通知
网友评论