PHP的错误处理

一、PHP的错误分类

  1.语法错误

    语法错误不会执行PHP脚本文件中的任意代码

  2.运行时错误

    在代码执行的过程当中发生的错误

  3.逻辑错误

    不会发生语法错误,不会发生运行时错误,会显示错误的结果

    通常情况下,这种错误最难排错

二、错误报错级别

  级别常量      错误值      错误报告描述

  E_ERROR      1         致命的运行时错误(阻止脚本执行)

扫描二维码关注公众号,回复: 1857371 查看本文章

  E_WARNING      2        运行时警告(非致命性错误)

  E_PARSE        4        从语法中解析错误

  E_NOTICE      8        运行时注意消息(可能是或可能不是一个问题)

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

  E_CORE_WARNING  32       PHP启动时初始化过程中的警告(非致命性)

  E_COMPILE_ERROR   64       编译时致命错误

  E_COMPILE_WARNING  128        编译时警告(非致命性)

  E_USER_ERROR    256        用户自定义的致命错误

  E_USER_WARNING   512       用户自定义的警告

  E_USER_NOTICE        1024       用户自定义的提醒(经常是bug)

  E_STRICT        2048      编码标准化警告(建议如何修改以向前兼容)

  E_ALL         6143      所有的错误、警告和注意信息

三、更改错误报告级别

  1.PHP的配置文件php.ini中:

    display_errors=On/Off (是否显示错误报告)

    error_reporting=E_ALL (更改要显示的错误报告级别)

  2.在代码中修改:

    ini_set('display_errors','off');

    error_reporting(0); / error_reporting(E_ALL);

四、用户自定义错误报告的处理方式

  ①trigger_error('提示信息',E_USER_ERROR/WARNING/NOTICE);

  ②set_error_handler(回调函数):

    回调函数所需的参数:

      errorno:错误报告级别的常量值

      errorstr:错误信息

      errorfile:错误发生的文件

      errorline:错误发生的行号

    注意:当前文件每发生一次错误,都会调用一次该回调函数

    例:

      set_error_handler('myerror');

      function myerror($errorno,$errorstr,$errorfile,$errorline){

      }

五、保存错误日志到指定文件中

  ini_set('error_reporting','E_ALL');

  ini_set('log_errors','on');  //开启外部保存错误信息

  ini_set('error_log','D:/error.log');  //设置保存的位置

  error_log('自定义错误信息');  //代码中使用该函数即可将错误日志写入到D:/error.log文件中

  注意:不可关闭error_reporting的错误报告

猜你喜欢

转载自www.cnblogs.com/zhouwanqiu/p/9260685.html