php 中的错误

错误的分类

程序没法运行,直接提示语法错误。

运行时错误:
只有程序运行到某行,或在某些特定的情形下运行才会发生的错误。

逻辑错误:
程序从头到尾运行都没有发生(并提示)错误,但程序运行计算的结果是错误的。

我们程序员主要面对的和要处理(应付)的错误,就是运行时错误。

错误的分级

在php中,将各种错误,分门别类,依据不同的严重程度和产生的来源(机制),将各种错误分为大约10几个级别。
每个级别的错误,都对应一个内部的名称——系统常量!

系统错误:
E_ERROR:系统严重错误
一发生,程序立即停止执行。
该错误一般希望马上。
E_WARNING:系统警告
一发生,提示错误,并继续执行。
通常该错误希望能够在“下一工作日”去处理掉(解决)。
E_PARSE:语法错误
一发生,提示错误,而且代码完全不会运行——在运行之前先检查语法。
E_NOTICE:系统提示
一发生,提示错误,并继续执行。
发个邮件通知一下,自己安排时间有空去解决。

他们的本质是什么呢?
这里写图片描述

这里写图片描述

可见他们只是一个系统内部常量(整数常量);
实际上,这些常量(代号)是供我们对对该类错误进行“控制”的标示符而已。

用户自定义错误
只有3个:
E_USER_ERROR;

E_USER_WARNING;

E_USER_NOTICE;
我们可以在程序中,自己创建(生成)错误——是为了针对某些数据的不合理情形,而创建的错误。
比如:让用户填写年龄, 填18是ok,但填写188就是不合理——从数字角度本身是没有问题。
其他:
E_ALL; 代表所有错误——表示它可以“包括”错误。
E_STRICT: 代表“严格性”语法检查错误——某种语法是可以执行的,但在当前的php版本中是不欢迎使用。

错误的触发

正常触发:
程序运行时确实发生了运行时错误——也可能是语法检查错误。
3种常见的运行时错误

这里写图片描述

人工触发

就是由程序员通过程序代码而“产生”一个错误。
语法:
trigger_error(“错误提示” , 用户错误代号);

错误的显示控制

网页中显示(提示)错误信息,是可以进行控制的,有2种途径:
1,在php.ini文件中设定,对所有php程序都有效;
2,在当前脚本文件中,只对当前脚步文件有效。

错误的显示有2个方面可以进行控制;
1,设定是否显示:display_error:
php.ini中;display_error = On; //表示显示, Off表示不显示;

这里写图片描述
2,设定显示哪些级别的错误——依赖与第一项设定为显示的情况。

php.ini文件中:
error_reporting = E_NOTICE; //只显示E_NOTICE错误
error_reporting = E_NOTICE | E_WARNING; //显示E_NOTICE和E_WARNING错误
error_reporting = E_NOTICE | E_WARNING | E_USER_ERROR;
//显示E_NOTICE和E_WARNING和E_USER_ERROR错误

记录错误日志

在开发阶段,我们通常都是显示所有错误——意图解决错误
在产品阶段,我们通常都是隐藏所有错误——并同时将错误信息记录到文件中——错误日志文件。
我们可以自己查看错误日志以解决开发阶段没有发现的错误问题。
记录错误日志同样有2种途径:
1,在Php.ini文件中设定:
log_errors = On; //用于设定是否记录错误日志,On记录,Off不记录

这里写图片描述

error_log = “错误日志文件名”; //设定错误日志的文件名
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值