PHP 扩展包实战教程 - 从入门到发布
1. 序言 2. 开发环境 3. 写作约定 4. 什么是 PHP 扩展包? 5. Composer 基础使用 6. 拓展包的基础结构 7. 需求分析与功能设计 - 天气 SDK 8. 准备工作 - 创建开放平台应用 9. 创建项目并安装依赖包 10. 从接口获取天气数据 11. 异常与错误处理 12. 编写单元测试 13. 测试我们的拓展包 14. 为 Laravel 集成优化 15. 编写友好的说明文档 16. 发布上线 17. 发布第一个版本 18. 代码重构实践 19. 使用 Travis-CI 做自动化测试 20. 使用 StyleCI 自动修复代码格式 21. 扩展包案例赏析 - EasySMS 22. 课程总结 23. 扩展开发推荐阅读清单 24. 作品分享和学习感悟
Menu

异常与错误处理

file

细心的你可能已经看到了,请求接口的方法 getWeather 可能会出现异常,然后在异常时我们还没有处理,所以是不合理的,这节就来优化这一部分。

说到异常,很多同学不是太理解它的作用,不少同学跟我反馈,不知道什么时候该抛出异常,我来为你解答:

什么时候应该抛出异常?

按照单一职责原则,一个类只应该关心自己的逻辑,当出现问题的时候,如果不是当前类该处理的,我们就应该抛出而不是消化。怎么理解呢?比如,请求天气接口的时候,网络出现问题,Guzzle 抛出了异常,这时候应该抛出异常。可是为啥不是 catch 异常然后返回 false 呢?这就涉及到边界问题了,业务异常运行时异常 要区分开,对方接口说你要查询的城市不存在,返回错误,这属于业务异常,这时候是不会抛出异常的。而你请求的 API 不存在,或者对方服务器宕机,或者你的服务器网络出问题,这属于运行时异常,就应该以异常抛出来告知调用方,而不是自主处理该异...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
刻意练习,每日精进。
10
点赞
3513
浏览
5
讨论
贡献者

作者