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

    一、PHP中调整错误报告级别的方式

    1修改php.ini文件的配置项

     注意:会导致在当前服务器环境下的所有PHP文件都受影响,实际开发过程中,不推荐此方式(如果代码更换服务器会导致配置文件全部失效,需重新配置,实际开发过程中,并不      推荐这种修改方式)

    >>>php.ini文件中的两个重要配置项

    display_errors:开启或关闭所有的错误级别

     可选值: 1/on开启报告 0/Off关闭所有错误报告
     eg:ini_set("display_errors","0");-->关闭所有错误报告

    error_reporting:设置哪些错误可以进行报告;

     eg:ini_set("error_reporting","E_ALL & ~E_NOTICE");-->报告所有错误且不报告notice错误;

    2直接在代码中使用ini_set()函数,动态的修改php.ini文件的配置项

    二、使用错误日志来记录出现的错误

    1、使用日志文件记录:使用error_log()函数将错误信息输出到日志文件中,默认日志文件在wamp中的log文件夹下,php_error.log文件。
    >>>自定义日志文件打印:
    ini_set("error_log","E:/test.txt")    注:这里用来设置日志文件地址
    error_log("出错啦"); 打印一句错误信息

    error_log("又出错了",3,"E:/test.txt"); 直接将错误打印到指定文件中

    2、写进windows系统日志中
    ini_set("error_log","syslog"); 设置日志记录到系统日志
    error_log("系统日志出错");使用日志报错时,将自动进入系统日志

    注:windows日志查看方式 计算机>管理>系统工具>事件查看器>事件摘要中找php>>

    三、自定义错误处理函数

    ① 声明一个错误处理函数 function func();
    ② 使用set_error_handler("func");设置当文件出现错误时,不再使用系统自带的错误提示功能,而是调用我们自定义的函数。
        注:set_error_handler("func")在触发函数时会默认向函数发送四个参数:分别是:错误的级别、错误的信息、发生错误的文件、错误所在的行号

    例:

    ini_set("log_errors", "On");
        $errMessage = "";
        function errorHandler($type,$message,$file,$line){
            global $errMessage;
            switch ($type) {
                case E_NOTICE:
                    $errMessage .= "发生了没有什么卵用的小bug,就不用处理了<br><br>";
                    echo "<script>"; 
                    echo "alert("{$errMessage}")"; 
                    echo "</script>"; 
                    break;
                case E_WARNING:
                    $errMessage .= "出错啦!!!";
                    $errMessage .= "错误类型是:{$type}";
                    $errMessage .= "错误信息是:{$message}";
                    $errMessage .= "错误发生的文件是:{$file}";
                    $errMessage .= "错误发生的行号是:{$line}";
                    $errMessage .= "<br><br>";
                    break;
                case E_ERROR:
                    echo "<script>"; 
                    echo "location.href='../test.php'"; 
                    echo "</script>"; 
                    break;
                default:
                    echo "<script>"; 
                    echo "location.href='../test.php'"; 
                    echo "</script>"; 
                    break;
            }
            
        }
        set_error_handler("errorHandler");
       
        echo $num;
       echo $errMessage;
  • 相关阅读:
    1442. Count Triplets That Can Form Two Arrays of Equal XOR
    1441. Build an Array With Stack Operations
    312. Burst Balloons
    367. Valid Perfect Square
    307. Range Sum Query
    1232. Check If It Is a Straight Line
    993. Cousins in Binary Tree
    1436. Destination City
    476. Number Complement
    383. Ransom Note
  • 原文地址:https://www.cnblogs.com/adaia/p/6942096.html
Copyright © 2011-2022 走看看