zoukankan      html  css  js  c++  java
  • PHP中的错误处理和日志函数

     

    debug_backtrace — 返回一个供调试使用的信息树
    debug_print_backtrace — 打印一个供调试使用的信息树
    error_get_last — 捕获最后的一条错误信息
    error_log — 将php的错误信息发送到某处
    error_reporting — 设定php的错误显示状况
    restore_error_handler — 恢复set_error_handler()函数对错误处理方式的修改
    restore_exception_handler — 恢复set_exception_handler()函数对异常处理方式的修改
    set_error_handler — 指定一个自定义的函数来处理错误信息
    set_exception_handler — 指定一个自定义的函数来处理异常信息
    trigger_error — 抛出一条用户级的错误信息。
    user_error — trigger_error()函数的别名

    php中的错误有以下几种类型:
    E_ERROR:php运行中的致命错误,会终止程序的运行。
    E_WARNING:php运行中的非致命错误,不会终止程序的运行。
    E_NOTICE:php运行中的重要建议,最好有所改进的地方。
    E_STRICT:php运行中的细节建议,往往是为了更好的向后兼容。
    E_PARSE:编译过程中解析器汇报的错误,比如你忘记了语句后面的“;”。
    E_CORE_ERROR:php核心产生的致命错误。
    E_CORE_WARNING:php核心产生的非致命错误。
    E_COMPILE_ERROR:Zend引擎引起的编译致命错误。
    E_COMPILE_WARNING:Zend引擎引起的编译非致命错误。
    E_USER_ERROR:使用trigger_error()函数抛出的致命错误,会终止程序的运行。
    E_USER_WARNING:使用trigger_error()函数抛出的非致命错误,不会终止程序的运行。
    E_USER_NOTICE:使用trigger_error()函数抛出的并不严重的错误。
    E_RECOVERABLE_ERROR:Catchable fatal error. It indicates that a probably dangerous error occured, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR.
    E_ALL:在PHP 5.2之前表示除了E_STRICT之外的所有错误。6以后表示所有错误。

    error_reporting()函数的作用是设定错误的显示方式,唯一的一个参数必须是一个数字,“0”表示不显示任何错误。

    0 不显示任何错误信息
    1E_ERROR
    2E_WARNING
    4E_PARSE
    8E_NOTICE
    16E_CORE_ERROR
    32E_CORE_WARNING
    64E_COMPILE_ERROR
    128E_COMPILE_WARNING
    256E_USER_ERROR
    512E_USER_WARNING
    1024E_USER_NOTICE
    6143E_ALL
    2048E_STRICT
    4096E_RECOVERABLE_ERROR
    <?php
    error_reporting(0);
    // 不显示任何错误信息
    error_reporting(E_ALL ^ E_NOTICE);
    // E_ALL 的二进制为:1011111111111,E_NOTICE 的二进制为:1000,两者进行按位异或操作,得到:1011111110111 表示在E_ALL级别中排除E_NOTICE的错误信息,并显示。
    ?>

    error_get_last()函数的作用是捕获最后一条错误信息。

    <?php
    echo3/0;
    print_r(error_get_last());
    /**
    * Array
    * (
    * [type] => 2
    * [message] => Division by zero
    * [file] => D:\work\web\php\test.php
    * [line] => 2
    * )
    */


    echo$a;
    print_r(error_get_last());
    /**
    * Array
    * (
    * [type] => 8
    * [message] => Undefined variable: a
    * [file] => D:\work\web\php\test.php
    * [line] => 14
    * )
    */

    ?>

    trigger_error()函数的作用是抛出一条用户级的错误信息。trigger_error()函数有两个参数,第一个参数表示抛出的信息 内容,第二个参数是E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE 之一,表示错误信息的级别。

    <?php
    trigger_error("这里显示一个错误", E_USER_WARNING);
    // 显示 “Warning: 这里显示一个错误 in D:\work\web\php\test.php on line 2”
    ?>

    debug_backtrace()函数的作用是返回一个供调试使用的信息树。debug_print_backtrace()函数的作用是直接打印输出信息,而不是返回。

    <?php
    functiontest($arg)
    {
      
    print_r(debug_backtrace());
    }
    test(6);
    /**
    * Array
    * (
    * [0] => Array
    * (
    * [file] => D:\work\web\php\test.php
    * [line] => 7
    * [function] => test
    * [args] => Array
    * (
    * [0] => 6
    * )
    *
    * )
    *
    * )
    *
    */

    ?>

    error_log()函数的作用是将php的错误信息发送到某处,error_log()函数有四个参数,第一个参数表示错误的信息,第二个参数 表示发送错误的方式:0表示本地系统的php的错误日志,1表示发送到某个邮箱地址,2表示发送到远程的服务器(仅在php3中有效),3表示追加到任意 的一个本地文件。

    <?php
    error_log("错误信息", 3, "./test.txt");
    // 在当前目录生成一个test.txt文件,并存放错误信息
    ?>

    set_error_handler()函数的作用是设定一个回调函数来处理错误信息。set_error_handler()函数有两个参数,第 一个参数是回调函数的名称,第二个参数表示错误的级别。restore_error_handler()函数的作用是恢复先前 set_error_handler()函数定义前的错误处理方式。set_exception_handler()函数的作用是设定一个处理异常的函 数,一种自定义的异常处理方式。restore_exception_handler()函数的作用是恢复 set_exception_handler()函数对异常处理方式的修改。

    set_error_handler()函数指定的函数需要处理五个参数:分别表示:错误级别,错误信息,错误的文件,错误的行数,错误处的变量信息,其中最后一个参数是可选的。
    set_exception_handler()函数指定的函数需要一个参数:包含错误信息的对象。

  • 相关阅读:
    PHP学习——数组处理函数(一)
    PHP与MySQL的连接
    c语言:<tchar.h>
    PHP数组(二)
    PHP数组(一)
    PHP基础知识(三)
    Git和GitHub
    PHP基础知识(二)
    js 全选和反选(复选框)
    python 字典之删除
  • 原文地址:https://www.cnblogs.com/firstdream/p/2440830.html
Copyright © 2011-2022 走看看