zoukankan      html  css  js  c++  java
  • php中的错误处理

    1.错误的级别

    1.notice 提示
    2.warning 警告
    3.error 致命错误

    notice和warning报错后继续执行,
    error报错后停止执行

    2.错误的提示方法

    方法一:显示在浏览器上

    方法二:记录在日志中

    3.与错误处理有关的配置

    在php.ini中

    1. error_reporting = E_ALL:报告所有的错误
    2. display_errors = On:将错误显示在浏览器上
    3. log_errors = On:将错误记录在日志中
    4. error_log=’地址’:错误日志保存的地址

    在项目开发过程中有两个模式,开发模式,运行模式

    开发模式:错误显示在浏览器上,不要记录在日志中
    运行模式:错误不显示在浏览器上,记录是日志中

    <?php
    $debug=false;        //true:开发模式  false:运行模式
    ini_set('error_reporting',E_ALL);    //所有的错误有报告
    if($debug){
        ini_set('display_errors','on');    //错误显示是浏览器上
        ini_set('log_errors','off');    //错误不显示在日志中
    }else{
        ini_set('display_errors','off');
        ini_set('log_errors','on');
        ini_set('error_log','./err.log');    //错误日志保存的地址
    }
    
    //测试
    echo $num;

    4.自定义错误处理

    通过trigger_error产生一个用户级别的 error/warning/notice 信息

    /**
    *自定义错误处理函数
    *@param $errno int 错误类别
    *@param $errstr string 错误信息
    *@param $errfile string 文件地址
    *@param $errline int 错误行号
    */
    function error($errno,$errstr,$errfile,$errline) {
        switch($errno){
            case E_NOTICE:
            case E_USER_NOTICE:
                echo '记录在日志中,上班后在处理<br>';
                break;
            case E_WARNING:
            case E_USER_WARNING:    
                echo '给管理员发邮件<br>';
                break;
            case E_ERROR:
            case E_USER_ERROR:
                echo '给管理员打电话<br>';
                break;
        }
        echo "错误信息:{$errstr}<br>";
        echo "错误文件:{$errfile}<br>";
        echo "错误行号:{$errline}<br>";
    }
    set_error_handler('error');
    echo $num;
    
    //运行结果
    记录在日志中,上班后在处理
    错误信息:Undefined variable: num
    错误文件:F:wampwww4-demo.php
    错误行号:50
  • 相关阅读:
    Scala之eq,equals,==的区别
    Spark Streaming流计算特点及代码案例
    刷题50—水壶问题
    刷题49(力扣3道题)
    刷题48——最长回文串
    刷题47——矩形重叠
    刷题46——拼写单词
    刷题45(力扣两道题)
    刷题44——岛屿的最大面积
    刷题43——最长上升子序列
  • 原文地址:https://www.cnblogs.com/wjw9/p/10975924.html
Copyright © 2011-2022 走看看