关于PHP中异常和错误的笔记

什么是PHP中的异常和错误
PHP中的异常,是指程序运行不符合预期的情况,一般属于逻辑或业务流程方面的问题,语法没错;PHP中的错误,是指因语法错误或者环境问题导致的、使编译器无法通过检查甚至无法运行的情况。
比如经典的除零问题,对于除零这种“异常”情况,PHP认为这是一个错误,会直接触发错误,而不会抛出异常使程序进入异常流程,这个和Java是不一样的。在PHP中,只有你主动throw后才能捕获异常(一般是这样,也有些异常PHP可以自动捕获)。从这个方面讲,在PHP中若想使用异常处理不可预料的问题是办不到的。
其实PHP和Java之间之所以有这个差距,根本原因就在于,在Java中,异常是唯一的错误报告方式。
处理异常的原则
如果业务很重要,那么异常越早处理越好,应该把它消灭在局部,避免异常的扩散。
PHP中常见的几个错误级别(从低至高):
deprecated(最低级别错误,表示“不建议”,这种错误一般是由于使用了不推荐的、过时的函数或语法造成的。)
notice(被告知语法中存在不当的地方,比如使用了未定义的变量,这种错误不影响PHP的正常流程)
warning(当语法中出现很不恰当的地方才会报此错误,比如函数参数不匹配,这种错误会导致得不到预期结果,需要修改代码)
fetal error(致命错误,会直接导致PHP流程终结,后面的代码不再执行。这种问题非改不可)
prase error(语法错误,知道导致代码不能通过语法检查,可以修改php.ini文件:
log_errors = On
error_log = usr/log/php.log
这样一旦php发生错误,就会被记入log文件,方便之后的查阅)
PHP中的错误处理机制
可以使用set_error_handler()函数设置用户自定义的错误处理函数,使得程序在发生某个级别的错误时执行用户自定义的处理函数。然而,在php中许多异常是被看作错误的,这样就可以通过set_error_handler函数把这些“异常”像错误一样设置,然后这些“异常”就可以主动抛出了。
tips
在代码质量不高或者环境不可控时使用error_reporting(0)就可以屏蔽错误,防止错误消息泄露敏感信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值