25
2019
10

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/post/7990.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

gzh

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。