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
  • 相关阅读:
    网络
    oracle 操作
    oracle可重复执行脚本(添加字段)
    c#命名规范(转载)
    Oracle修改表结构字段名和字段长度
    C#Winform的DEV下拉下拉控件介绍
    TPL DataFlow初探(二)
    TPL DataFlow初探(一)
    C# Winform 跨线程更新UI控件常用方法汇总(多线程访问UI控件)
    C# 关于委托
  • 原文地址:https://www.cnblogs.com/wjw9/p/10975924.html
Copyright © 2011-2022 走看看