• PHP错误处理


    一、错误的分类

    ①编译错误:在编译的过程中发生的错误,编码错误是最容易解决的,一般都是代码的书写错误

    ②执行错误:在执行阶段发生的错误,此种错误一旦发生会根据错误的等级来决定是否中断程序的执行

    ③逻辑错误:由于程序的逻辑不严谨而产生的错误,此种错误是最难排查的,程序可以正常执行但是最终的结果不是所期望的

    二、错误代码:在迫PHP的错误处理机制中,每一种错误都使用了一个错误标识

    ①系统错误:E_PARSE(编译错误) ,E_NOTICE(提示错误) ,E_ERROR(致命错误),  E_WRRING(警告错误)

     ②自定义错误

    ③E_All (所有错误,中断程序执行)

    <?php
        echo '<pre>';
        print_r(get_defined_constants());
    ?>

    三、错误的触发

    ①系统错误的触发:由PHP自动检测并触发,程序员无法干涉

    <?php
        //gettype()是一个函数,用于获取变量的数据类型,必须传入一个参数
        gettype($v);//传入了一个没有定义的变量
        gettype();//没有传入参数
        get_type();//书写错误
    ?>

    ②自定义错误的触发 :trigger_error(msg,type)msg是错误描述信息,type是自定义错误的代码(E_USER_ERROR、E_USER_WARNING、E_USER_NOTICE

    <?php
       //设计者认为用户传递的参数不是数组,认为这是一个错误
       function listArr($arr){
           if(!is_array($arr)){
              trigger_error('argument 1 expected array,given int',E_USER_NOTICE);
           }
           for($i=0;$i<count($arr);$i++){
               echo $arr[$i],'<br>';
           }
       }
       //使用者
       $arr=1;
       listArr($arr);
    ?>

    ③提示:使用错误处理机制的好处在于可以将错误记录起来,默认记录到Apache的logs/error.log文件中

    四、错误的控制设置:在php.ini文件中设置

    ①可以控制错误是否显示

    ②可以控制显示哪一类的错误

    五、错误的日志文件的记录设置

    ①没有设置,记录默认在Apache的logs/error.log文件中

    ②可以控制是否记录错误 log_errors=on/off,在php.ini中设置

    ③可以自定义设置错误日志的记录位置

    • error_log=syslog  在操作系统中记录(windows系统的错误日志在事件查看器里面)

    • error_log=文件名   记录到自定义的位置

  • 相关阅读:
    JVM 的主要组成部分及其作用
    一天一个 Linux 命令(5):pwd命令
    算法-经典趣题-马踏棋盘(又称骑士周游)
    SAP HANA Schemas 和 HDI Containers
    如何手动下载并安装 Visual Studio Code 的 SAP Fiori tools
    一个最简单的 Github workflow 例子
    SAP UI5 初学者教程之七
    最近看的动漫和电影
    关于工作,干了这碗鸡汤
    啊啊啊啊啊啊
  • 原文地址:https://www.cnblogs.com/EricZLin/p/9161754.html
Copyright © 2020-2023  润新知