• 技术文章 >后端开发 >php教程

    php的错误处理及实现方法

    jacklovejacklove2018-05-22 14:16:41原创693
    本篇将会讲解php错误处理的实现方法。

    php的错误,警告,异常处理如何实现,那些函数用于处理对应的错误

    php 异常提示分为三类 error/warning/notice

    错误补充:

    Fatal Error:致命错误(脚本终止运行)

    E_ERROR // 致命的运行错误,错误无法恢复,暂停执行脚本

    E_CORE_ERROR // PHP启动时初始化过程中的致命错误

    E_COMPILE_ERROR // 编译时致命性错,就像由Zend脚本引擎生成了一个E_ERROR

    E_USER_ERROR // 自定义错误消息。像用PHP函数trigger_error(错误类型设置为:E_USER_ERROR)

    E_RECOVERABLE_ERROR //可被捕捉的致命错误。 它表示发生了一个可能非常危险的错误,但是还没有导致PHP引擎处于不稳定的状态。

    Parse Error:编译时解析错误,语法错误(脚本终止运行)

    E_PARSE //编译时的语法解析错误

    警告补充:警告错误(仅给出提示信息,脚本不终止运行)

    E_WARNING // 运行时警告 (非致命错误)。

    E_CORE_WARNING // PHP初始化启动过程中发生的警告 (非致命错误) 。

    E_COMPILE_WARNING // 编译警告

    E_USER_WARNING // 用户产生的警告信息

    异常通知补充:通知错误(仅给出通知信息,脚本不终止运行)

    E_NOTICE // 运行时通知。表示脚本遇到可能会表现为错误的情况.

    E_USER_NOTICE // 用户产生的通知信息。

    php错误处理实现:

    register_shutdown_function('funcName') // 参数是需要捕获错误的函数名称,但是register_shutdown_function,只能捕获运行时候的致命错误,不能捕获解释时的执行错误,因为它时程序执行完成之后执行的函数(比如语法错误,这种运行时就会产生的错误时不会被捕捉的)

    set_error_handler(‘funcName’) //参数是需要捕获的回调的函数名,区别于register_shutdown_function,它是在函数运行期间捕获到错误

    当目标文件执行遇到错误的时候,系统会回调指定函数:

    例子:

    register_shutdown_function( "fatal_handler" );
    set_error_handler("error_handler");
    define('E_FATAL', E_ERROR | E_USER_ERROR | E_CORE_ERROR |
    E_COMPILE_ERROR | E_RECOVERABLE_ERROR| E_PARSE );
    //获取fatal error
    function fatal_handler() {
    $error = error_get_last();
    if($error && ($error["type"]===($error["type"] & E_FATAL))) {
    $errno = $error["type"]; //
    $errfile = $error["file"];
    $errline = $error["line"];
    $errstr = $error["message"];
    error_handler($errno,$errstr,$errfile,$errline);
    }
    }

    //获取所有的error

    function error_handler($errno,$errstr,$errfile,$errline){
    $str=<< "errno":$errno
    "errstr":$errstr
    "errfile":$errfile
    "errline":$errline
    EOF;
    //获取到错误可以自己处理,比如记Log、报警等等
    echo $str;
    }
    //error_get_last() 捕获到的执行错误结果
    //error_clear_last() 清除最后一次产生的错误信息

    //上面两者可以捕获所有错误,警告, 异常,但作性能考虑,不建议使用其捕获警告异常

    本篇介绍了错误处理的方法,更多相关内容请关注php中文网。

    相关推荐:

    PHP获取多维数组指定的值在数组第几列?

    php基础学习:PHP数组与数据结构

    php基础学习:PHP文件系统

    以上就是php的错误处理及实现方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 错误处理 实现
    上一篇:PHP 文件写入和读取图文详情 下一篇:PHP中trait使用方法图文详解
    千万级数据并发解决方案

    相关文章推荐

    • 实例详解怎么用PHP实现简易的MVC框架• 消息队列RabbitMQ入门与PHP实例详解• 装配mysql出错Can't connect to MySQL server on 'localhost' (10061 • 不从新编译PHP为php增加openssl模块的方法 • 这么写是为啥?运行过程是怎样的
    1/1

    PHP中文网