首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
错误处理:拼写错误
单引号和双引号的混用
括号使用混乱
等号与赋值符号混淆
缺少美元符号
调用不存在的常量和变量
调用不存在的文件
环境配置的错误
数据库服务器连接错误
php.ini中的错误处理机制
应用DIE语句调试
自定义错误和错误触发器
异常的基本处理方法
自定义的异常处理器
处理多个异常
设置顶层异常处理器
PHP 8的新变化1—改变了错误的报告方式
PHP 8的新变化2—优化异常处理
实战演练—处理异常或错误
文件数据的写入
文件数据的读取
目录操作
文件的上传概述
文件上传
实战演练—编写文本类型的访客计算器
当前位置:
首页>>
技术小册>>
PHP8入门与项目实战(5)
小册名称:PHP8入门与项目实战(5)
PHP 8在异常方面有了新的变化。 1.新增内置异常类ValueError 在PHP 8版本之前,当传递值到函数时,如果是一个无效类型,则会导致警告。在PHP 8版本中,如果是无效类型,则会抛出异常ValueError。PHP 8新增的内置异常类ValueError继承自Exception基类。 例如,以下程序运行时将会抛出异常ValueError。 ```php <?php declare(strict_types=1); /** * 传递数组到array_rand,类型正确,但是array_rand期望传入的是非空数组 * 所以会抛出ValueError异常 */ array_rand([], 0); /** * json_decode的深度参数必须是有效的正整型值, * 所以这里也会抛出ValueError异常 */ json_decode('{}', true, -1); ?> ``` 2.throw表达式 在异常中,可以将throw用作表达式,例如: ```php $value = $nullableValue ?? throw new InvalidArgumentException(); ``` 3.捕获异常而不存储到变量 现在可以编写catch(Exception)代码块来捕获异常,而不将其存储在变量中。如果用不到异常信息,可以不设变量,从而减少内存消耗。 ```php <?php declare(strict_types=1); $nullableValue = null; try { $value = $nullableValue ?? throw new \InvalidArgumentException(); } catch (\InvalidArgumentException) { var_dump("发生过异常!"); } exit; ?> ```
上一篇:
PHP 8的新变化1—改变了错误的报告方式
下一篇:
实战演练—处理异常或错误
该分类下的相关小册推荐:
PHP8入门与项目实战(7)
Laravel(10.x)从入门到精通(十九)
PHP8实战小册
PHP高并发秒杀入门与实战
Laravel(10.x)从入门到精通(十五)
PHP高性能框架-Swoole
PHP程序员面试笔试真题与解析
PHP合辑5-SPL标准库
Laravel(10.x)从入门到精通(十)
PHP高性能框架-Workerman
PHP8入门与项目实战(8)
ThinkPHP项目开发实战