首页 > 代码库 > PHP中错误处理

PHP中错误处理

一、PHP中的错误处理

1、PHP中的错误级别

技术分享

2、调整PHP错误报告级别
  >>>PHP中,调整错误报告级别的方式有两种:
  ①修改php.ini文件的配置项。
     a.会导致在当前服务器环境下的所有PHP文件都受其影响
     b.如果代码要更换服务器,会导致配置文件全部失效,需重新配置
     所以,实际开发过程中,并不推荐这种修改方式
  ②在代码中,使用ini_set()函数,动态的修改php.ini文件的配置项
 
  >>> php.ini中的两个重要配置项
     ①display_errors:开启或关闭所有的错误级别
    可选值:1/On 表示开启错误报告功能 0/Off 表示关闭所有报告
    默认是开启,而且强烈建议保持开启
 ini_set("display_errors","0"); //关闭所有错误报告功能
  ②error_reporting:设置那些错误,可以进行报告;
    有两个函数可以设置ini_set(); error_reporting();
ini_set("error_reporting","E_ALL");  // 报告全部错误
error_reporting("error_reporting","E_ALL & ~E_NOTICE"); // 不报告注意NOTICE级别,其他错误正常报告
 
3、使用错误日志来记录出现的错误
  ①使用日志文件记录:
     使用error_log();函数,将错误信息输出到日志文件中;默认的日志文件在wamp中的log文件夹下,php_error.log文件
  >>>自定义日志文件打印:
ini_set("error_log","E:/test.txt"); //设置日志文件地址
error_log("出错啦!!"); //打印一句错误信息
error_log("又出错啦!",3,"E:/test.txt"); //直接将错误打印到指定文件中

 

  ②写进windows系统日志
ini_set("error_log","syslog"); //设置日志记录到系统日志
error_log("系统日志出错"); //使用日志报错时,将自动进入系统日志
 
4、trigger_error():自定义一个错误!会像系统的错误一样,产生报错。
  参数a 错误的信息内容
  参数b 错误的级别。E_USER_WARNING E_USER_ERROR
5、自定义错误处理函数:
  ①声明一个错误处理函数 function func()
  ②使用set_error_handler("func"); 设置当文件出现错误时,不再使用系统自带的错误提示功能,而是调用我们自定义的函数
  >>> set_error_handler在触发函数的时候,会默认向函数发送四个参数,分别是:错误的级别、错误的信息、发生错误的文件、错误所在的行号
所以可以在声明函数时,接收错误信息,具体处理。
$errMessage = "";
 ini_set("log_errors","On");
     
 function errorHandler($type,$message,$file,$line){
    global $errMessage;
    switch ($type) {
        case E_NOTICE:
        $errMessage .= "发生了没有什么卵用的小bug,就不用处理了<br><br>";
        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=http://www.mamicode.com/‘../test.php‘"; 
        echo "</script>"; 
        break;
        default:
        echo "<script>"; 
        echo "location.href=http://www.mamicode.com/‘../test.php‘"; 
        echo "</script>"; 
        break;
    }
        
}
set_error_handler("errorHandler");

 

PHP中错误处理