PHP错误与异常

程昱
• 阅读 586

PHP错误与异常

这篇文章基于PHP7

从PHP7起,PHP对异常做了较大改变,引入了Error,调整了继承结构

Stringable

这是个interface,只要能转字符串的类都应该实现这个接口

Throwable

能被throw抛出的最基本的接口,但是PHP不允许直接实现这个接口

Exception

所有用户级异常的基类,想要自定义异常就可以继承这个

LogicException

代码逻辑错误,就是代码写的不对

BadFunctionCallException

如果回调函数未定义或缺少参数的时候,抛出这个异常

BadMethodCallException

如果回调方法未定义或缺少参数的时候,抛出这个异常

DomainException

如果一个值不在有效的值列表中,则抛出这个异常

InvalidArgumentException

参数无效

LengthException

长度无效

OutOfRangeException

下标越界

RuntimeException

运行时异常

OutOfBoundsException

无效key,在编译阶段未检测出来的

OverflowException

溢出

RangeException

执行期间的范围异常,相当于编译期间的DomainException

UnderflowException

空对象上的无效操作,eg: 删除元素

UnexpectedValueException

值不在可接受集合

ErrorException

错误异常

Error

内部错误的基类

TypeError

类型不匹配

ArgumentCountError

参数数量不匹配

ArithmeticError

数学运算错误

DivisionByZeroError

除零错误

AssertionError

断言失败错误

CompileError

编译错误

ParseError

解析PHP代码错误

ValueError

传值错误

UnhandledMatchError

match未被匹配到任何分支

FiberError

在纤程上执行无效操作

点赞
收藏
评论区
推荐文章
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Stella981 Stella981
3年前
PHP代码静态分析工具PHPStan
<blockquote最近发现自己写的PHP代码运行结果总跟自己预想的不一样,排查时发现大多是语法错误,在运行之前错误已经种下。可能是自己粗心大意,或者说<codephpl</code检测太简单,不过的确是有一些语法错误埋藏得太深(毕竟PHP是动态语言),那么有没有办法,在代码代码正式运行之前,把语法错误全找出来呢?</blockquote<p
Wesley13 Wesley13
3年前
PHP扩展开发小记
  之前开发的Xukey,在PHP5.6和5.6之前的版本都没有任何问题,在兼容PHP7之后,执行生成随机数会出现“”段错误“”。编译扩展时加入debug,提示phpterminated\\\stacksmashingdete。这样的错误和没有提示直接退出没有什么区别。之后又用gdb调试,这个错误明显一些,提示 /sysdeps/x86\
Wesley13 Wesley13
3年前
12306抢票带来的启示:看我如何用Go实现百万QPS的秒杀系统(含源码)
本文为开源实验性工程:“github.com/GuoZhaoran/spikeSystem”的配套文章,原作者:“绘你一世倾城”,现为:猎豹移动php(https://www.oschina.net/p/php)开发工程师,感谢原作者的技术分享。1、引言Go语言的出现,让开发高性能、高稳定性服务端系统变的容易,与高贵冷艳的Erlang语
Stella981 Stella981
3年前
Jitamin
安装环境要求PHP(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.php.net%2F) 5.6或更高(推荐使用PHP7)数据库,推荐使用MySQL(https://www.oschina.net/action/GoToLink?url
Wesley13 Wesley13
3年前
PHP7版本改动细节整理翻译完毕
自从鸟哥发布PHP7相关的版本以来,就一直关注PHP7的进展。PHP7是非常值得期待的一个版本,性能获得了极大的提升,语法也更加合理规范。最近就花了一些时间,整理翻译了PHP7版本的改动记录文件。主要包括了以下部分:  2非兼容性改动   2.1语言修改   2.1.1变量处理机制修改   2.1.2list
Stella981 Stella981
3年前
ECshop 在迁移到 PHP7 时遇到的兼容性问题
在PHP7上安装ECShopV2.7.3时,报错!Deprecated:MethodswiththesamenameastheirclasswillnotbeconstructorsinafutureversionofPHP;ECShasadeprecatedconstructori
Easter79 Easter79
3年前
Systemd 三部曲 之 PHP7
导读在鸟哥的博客里看到了他们做的PHP的性能测试,相对于PHP5.6都是有很大的提升的,并且PHP的主版本号已经是2004年发布PHP5后,11年来首次更新,肯定PHP7是有很大的改变的,并且支持了Systemd。安装编译php7时需要的依赖包:yumyinstalllibxml2libxml2developen
可莉 可莉
3年前
11.32 php扩展模块装安装
1.32php动态扩展模块安装注: 本节操作使用PHP7。查看PHP模块:root@cham002~/usr/local/php/bin/phpmPHPModulesbz2Corectypedatedome
Wesley13 Wesley13
3年前
PHP7 升级的那些事儿
PHP7升级的那些事儿!(http://www.linuxprobe.com/wpcontent/uploads/2016/04/php7apache2mysql.png)
Wesley13 Wesley13
3年前
PHP错误和异常
在平时的开发当中,我接触的很多开发者,写的方法中很少用到抛出异常的语句,对于一个严格的开发者来说,这是没有办法容忍的。那么,在PHP中如何更好的使用异常呢?很多开发者可能对错误和异常有会很迷糊。今天就来介绍一下错误和异常的区别,以及我们应该如何更好的灵活运用。参考文档:https://segmentfault.com/a/119000000950