常见的三种错误:

1.Notice :通知性错误,最小的错误,当发生通知性错误时,会弹出一个提示信息。不会中断代码的执行。

错误代码:

#例如
Notice: in I:\www\abc\error.php on line

2.Warning:警告性错误,当发生警告性错误后,会弹出一个警告信息,他不会中断程序向下运行。

#例如
Warning: in I:\www\abc\error.php on line

3.Error:致命性错误,当发生致命性错误后,会弹出一个致命错误信息,中断程序执行。

#例如
Fatal error: in I:\www\abc\error.php on line

上面是常见的3中PHP中的错误,跟多详细错误看下面代码:

#查看更多错误,可以调用系统函数get_defined_constants这个函数
#简答的展示一些: echo "<pre>";
var_dump(get_defined_constants()); array() {
["E_ERROR"]=>
int()
["E_RECOVERABLE_ERROR"]=>
int()
["E_WARNING"]=>
int()
["E_PARSE"]=>
int()
["E_NOTICE"]=>
int()
["E_STRICT"]=>
int()
["E_DEPRECATED"]=>
int()
["E_CORE_ERROR"]=>
int()
["E_CORE_WARNING"]=>
int()
["E_COMPILE_ERROR"]=>
int()
["E_COMPILE_WARNING"]=>
int()
["E_USER_ERROR"]=>
int()
["E_USER_WARNING"]=>
int()
["E_USER_NOTICE"]=>
int()
["E_USER_DEPRECATED"]=>
int()
["E_ALL"]=>
int()
["DEBUG_BACKTRACE_PROVIDE_OBJECT"]=>
int()
["DEBUG_BACKTRACE_IGNORE_ARGS"]=>
int()
["TRUE"]=>
bool(true)
["FALSE"]=>
bool(false)
["NULL"]=>];
~~~~还有更多。

错误的触发:

可以分为两种:

1.系统自动触发

系统自动检查程序的编译以及执行,在出错的时候,自动给出错误提示。

2.手动触发:

PHP中手动触发可以调用系统函数,一般用来调试相应的错误程序,一般是用户级别的错误。

触发的函数:trigger_error

第一个参数可以设置错误提示信息,第二个参数可以设置错误的级别

E_USER_NOTICE:触发通知级别错误,最低级别的用户错误

E_USER_WARNING:触发警告级别的错误,后续代码继续执行

E_USER_ERROR:触发致命错误级别的错误,后续代码终止执行。

错误显示开关:

在php.ini中配置display_errors选项,默认为on,显示错误提示,在开发阶段建议设置on,便于项目的调试。产品上线设置为off,用户体验好,安全性高,该设置一直有效。

也可以在脚本中执行ini_set函数,设置dispaly_errors的值,只能在脚本生命周期内,无法修改php.ini文件时,可以采用该方式,脚本周期结束,选项恢复。

设置错误显示的级别:

设置错误报告的级别后,可以决定来显示什么级别的错误信息。

在php.ini中配置error_reporting选项,默认设置为显示所有的错误:

设置错误报告的级别后,可以决定来显示什么级别的错误信息。

E_ALL:显示所有的错误

E_NOTICE:显示通知性的错误

E_WARING:显示警告性的错误

E_ERROR:显示致命性的错误

同样也可以调用ini_set函数设置。

错误日志:

错误日志设置:
一般项目上线需要记录错误日志,用于检查系统错误,默认日志开关开启。

错误日志的默认路径

apache:

apache/logs/error.log

Nginx:

/var/log/nginx/error.log

自定义错误日志存储路径:
ini_set('error_log','路径');

只能设置一次有效,脚本生命周期结束,记录结束。

自定义错误处理处理器:

出现错误时,默认使用系统的错误处理机制来提示错误信息,可以提示什么级别的错误,错误提示字符串,发生错误的文件以及行号等。

可以自定义设置错误提示:

写一个自定义错误处理函数

my_error

有四个参数

$errCode:错误代号

$errStr:错误提示

$errFile:错误文件

$errLine:错误行号

默认不会调用,必须调用set_error_handler函数设置为系统自动调用这个函数。

先到这把,欢迎继续补充~~~,本人微信meng199898,转帖需备注

PHP中的错误处理机制的更多相关文章

  1. javascript中的错误处理机制

    × 目录 [1]对象 [2]类型 [3]事件[4]throw[5]try[6]常见错误 前面的话 错误处理对于web应用程序开发至关重要,不能提前预测到可能发生的错误,不能提前采取恢复策略,可能导致较 ...

  2. Android IOS WebRTC 音视频开发总结(七五)-- WebRTC视频通信中的错误恢复机制

    本文主要介绍WebRTC视频通信中的错误恢复机制(我们翻译和整理的,译者:jiangpeng),最早发表在[这里] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blac ...

  3. php 中的错误处理机制

    php 里有一套错误处理机制,可以使用 set_error_handler 接管 php 错误处理,也可以使用 trigger_error 函数主动抛出一个错误. set_error_handler( ...

  4. windows核心编程---第一章 谈谈windows中的错误处理机制

        我们写的函数会用返回值表示程序执行的正确与否,使用void,就意味着程序一定不会出错.Bool类型标识true时为真,false时为假.其他类型根据需要可以定义成不同意义.       Win ...

  5. 《windows核心编程系列》一谈谈windows中的错误处理机制

    错误处理 我们写的函数会用返回值表示程序执行的正确与否,使用void,就意味着程序一定不会出错.Bool类型标识true时为真,false时为假.其他类型根据需要可以定义成不同意义. Windows除 ...

  6. 学习PDO中的错误与错误处理模式

    在 PDO 的学习过程中,我们经常会在使用事务的时候加上 try...catch 来进行事务的回滚操作,但是大家有没有注意到默认情况下 PDO 是如何处理错误语句导致的数据库操作失败问题呢?今天,我们 ...

  7. php中错误处理机制

    php中,异常处理机制是有限的,无法自动抛出异常,必须手动进行,并且内置异常有限. php把许多异常看作错误,这样就可以把这些异常想错误一样用set_error_handler接管,进而主动抛出异常. ...

  8. PHP中的错误处理、异常处理机制详解

    在编写PHP程序时,错误处理是一个重要的部分.如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门 例: <?php $a = fopen('test.txt','r'); / ...

  9. linux系统编程之错误处理机制

    在讲解liunx错误处理机制之前我们先来看一段代码: #include<sys/types.h> #include<sys/stat.h> #include<fcntl. ...

随机推荐

  1. CSS3之border-radius圆角

    CSS3之border-radius圆角 DIV盒子圆角 图片圆角,CSS3样式实现盒子对象圆角.图片圆角效果.div css3 border-radius圆角样式教程篇. 一.css3单词与语法结构 ...

  2. 如何实现dede首页栏目文章指定调用

    如何实现dede首页栏目文章指定调用,首页文章栏目指定ID调用 dobote | 浏览 11891 次 推荐于2016-05-20 10:53:26 最佳答案 {dede:arclist flag=' ...

  3. Android之MaterialDesign应用技术

    PS:纵观现在大大小小软件的界面都变的比较漂亮,还有一些系统了,比如小米的MIUI,华为的EMUI等,虽然底层都是安卓,但他们的界面多多少少都会不同,谷歌对这个UI也是非常重视的,MaterialDe ...

  4. Hadoop集群的JobHistoryServer详解(转载)

    Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map.用了多少个Reduce.作业提交时间.作业启动时间.作业完成时间等信息.默认情况下 ...

  5. 用IDEA/WebStrom 提交本地项目到Git/码云等

    以码云为例: 在码云上创建新的项目. webstrom/idea 打开本地项目

  6. jQuery时间格式插件-moment.js的使用

    jQuery时间格式插件-moment.js的使用 moment.js插件的使用,使用之前在页面引入对应的js文件: 详细的操作可见moment中文官网:http://momentjs.cn/ 日期格 ...

  7. 新建maven项目,JRE System Library[J2SE-1.5]

    上篇博文中搭建了maven多模块项目,发现全是JRE System Library[J2SE-1.5],如图. 怎么避免这种情况呢? windows-preferences-maven-user se ...

  8. java从文件中读取json

    wangxiaoer.json里面存放了json数据 需要依赖common-io.jar

  9. CU社区shell板块awk十三问整理

    CU社区shell板块awk十三问整理 一.RS="" 当 RS="" 时,会将\n强制加入到FS变量中,因为RS为空时,是将连续多空行作为分隔符,近似于\n\ ...

  10. shell第四篇(上)

    第四篇了解Shell 命令执行流程图 {网中人大哥推荐参考Learning the Bash Shell, 2nd Edition,第 178页:中文版229页} Shell 从标准输入或脚本中读取的 ...