• PHP入门10


    一、PHP错误的等级

     二、调整错误报告的级别

      1、通过脚本文件,查找 display_errors:是否开启,默认值为:ON(默认输出错误报告),调整则改成:E_ALL 或 E_ALL & ~E_NOTICE;

      2、可以在PHP脚本中修改 error_reporting(E_ALL)或 error_reporting(E_ALL & E_NOTICE);

    三、自定错误报告方式

      1、自定义错误报告的处理方式,可以完全绕过标准的PHP错误处理函数,这样就可以按自己定义的格式打印错误报告,或改变错误报告打印的位置,以下几种情况可以考虑自定义错误处理。

      2、可以记下错误的信息,及时发现一些生产环境出现的问题;

      3、可以屏蔽错误。 可以控制错误的输出。 可以作为调试工具。

      4、使用set_error_handler()函数来设置用户自定义错误处理。

    <?php
    /**
     * @Author: Marte
     * @Date:   2018-04-30 15:38:08
     * @Last Modified by:   Marte
     * @Last Modified time: 2018-04-30 16:02:31
     */
        
        error_reporting(E_ALL & ~E_NOTICE);
        //在PHP中注册一个函数,来处理错误报告,而不按原来的方式处理了
        set_error_handler("errorfun");
        $mess = "";
        //自定义错误报告处理函数
        function errorfun($error_type, $error_message, $error_file, $error_line){
            global $mess;
    
            $mess .= "错误级别:{$error_type} <br>错误信息:{$error_message} <br>错误文件:{$error_file} <br>错误在第几行:{$error_line}";
        }
    
        gettype($a);
        echo "1111111111111111 <br>";
        echo "2222222222222222 <br>";
        echo $mess;
        /*
        输出信息:
            1111111111111111 
            2222222222222222 
            错误级别:8 
            错误信息:Undefined variable: a 
            错误文件:D:WampServerwamp64wwwphp10.1.2_error_message.calss.php 
            错误在第几行:18
         */

    四、记录错误日志

      1、先配置php.ini 文件

        error_reporting = E_ALL // 将向PHP发送每个错误

        display_errors = OFF //不显示错误报告

          设置:ini_set("display_errors", OFF);

          获取:ini_get();

        log_errors = On // 决定日志语句记录的位置

        log_errors_max_log = 1024 //每个日志项的最大长度

        error_log = //制定错误写入的文件

        error_log = syslog  //系统日志

    五、PHP异常处理:利用 try {}catch{},

      异常(Exception)处理用于在指定的错误发生时改变脚本的正常流程。是PHP5中的一个新的重要特性。异常处理是一种可扩展、易维护的错误处理统一机制,并提供了一种新的面向对象的错误处理方式。

      异常处理格式:

          try{  
                 使用try去包含可能会发生异常的代码.
                 一旦出现异常try进行捕获异常,交给catch处理。
                 抛出异常语句:throw 异常对象。
              }catch(异常对象参数){
                 在这里做异常处理。
              }[catch(。,,){
                 .. .. ..
              }]

      1、try catch是一体的;

      2、try catch之间不能有任何代码

      3、工作原理:   

        1. 试着执行try中的代码, 如果没有问题, 继续执行catch之后的代码
        2. Exception 是系统的类
        3. 如果有异常对象抛出, 就将异常对象给 catch()中的类
        4. try中发生异常位置后的代码不再执行, 而是直接到catch中, catch中执行完成以后, 再继续执行catch之后的代码

    <?php
    /*
     *  try {
     *
     *  }
     *    
     *
     *  catch(Exception $e) {
     *
     *  }
     *
     *  1. try catch是一体
     *  2. try catch之间不能有任何代码
     *
     *  工作原理
     *
     *      1. 试着执行try中的代码, 如果没有问题, 继续执行catch之后的代码
     *
     *      2. Exception 是系统的类 
     *
     *      3. 如果有异常对象抛出, 就将异常对象给 catch()中的类
     *
     *      4. try中发生异常位置后的代码不再执行, 而是直接到catch中, catch中执行完成以后, 再继续执行catch之后的代码
     */
        echo "早上起床<br>";
    
    try{
        echo "开车上班<br>";
    
        //抛出异常
        throw  new Exception("车子爆胎了");
        echo "路况很好<br>";
    
    } catch(Exception $e) {    //  Exception $e = new Exception('');
        echo $e->getMessage()."<br>";//getMessage() 获取异常信息
    echo "换上备胎,继续开车上班<br>"; } echo "到公司开始工作<br>";
  • 相关阅读:
    07word转换pdf
    高德纳《计算机程序设计艺术》(The Art of Computer Programming)的作者
    DbVisualizer 8 解决中文乱码问题 (20120310 20:23)
    IT has never been easier or harder
    el表达式和s:property的区别
    df 和 du 命令详解
    dbvisualizer 8.0 破解(free>personal)
    ping 中的TTL查看操作系统
    netstat 监控TCP/IP网络
    ls l 命令
  • 原文地址:https://www.cnblogs.com/patriot/p/8973655.html
Copyright © 2020-2023  润新知