《PHP核心技术与最佳实践》读书笔记(异常和错误处理篇)
来源:互联网 发布:数据分析平台交互设计 编辑:程序博客网 时间:2024/05/16 01:11
异常
大型程序中,如果每次调用都去逐一检查错误,会使代码变得冗长复杂,到处充斥着if —else,严重降低代码的可读性。
PHP只有在你主动throw后,才能捕获异常, 之所以和java之间有差距,在java里,异常是唯一的错误报告方式,而在php中却不是这样的,通俗一点讲,就是这两种语言对异常和错误的界定存在分歧。
- 以下是php主动获取异常的一个实例
class emailExceprion extends exception { class pwdException extends exception { function __toString() { return "<div class=\"error\"Exception{$this->getCode()}":{$this->getMessage()} in File:{this->getFile()}on line:{$this->getLine()}</div>"; } }}function reg($reginfo = null) { if(empty($reginfo) || !isset($reginfo)) { throw new Exception("参数非法"); } if(empty($reginfo['email])) { throw new emailException("邮件为空"); } echo "注册成功";}try { reg(array('email'=>'***','pwd'='****','repwd'=>'***'))}catch(emailException $ee) { echo $ee->getMessage();}catch(Excetion $e) { echo $e->getTraceAsString(); echo PHP_EOL;}
php异常应用的场景:
1. 对程序的悲观预测:程序员认为自己的代码无法一一处理各种可预见,不可预见的情况,那就可以进行异常处理。
2. 程序的需要和对业务的关注:程序员希望业务代码中不充斥一大堆打印调试的处理,就会用异常机制。或者是一些业务上需要定义一些异常,比如上班迟到。
在健壮性这点上,php是不足的,java是一种面向企业级开发的语言,强调健壮性。php中的异常机制是不足的,绝大多数情况下无法自动抛出异常。
错误级别
- deprecated 最低级别的错误,表示不推荐,不建议(比如正则匹配上)
- notice(比如使用变量未定义)
- warning级别比较高的错误,语法出现不恰当才会报此错误。
- fetal error,致命错误,导致php流程终结,后面代码不再执行。
- prase error,语法检查阶段错误,php代码无法通过语法检查。
错误处理机制
php有一套错误处理机制,可以使用set_error_handler接管PHP错误处理,也可以使用tigger_error函数主动抛出一个错误。
0 0
- 《PHP核心技术与最佳实践》读书笔记(异常和错误处理篇)
- 《PHP核心技术与最佳实践》读书笔记(面向对象篇)
- 《PHP核心技术与最佳实践》读书笔记(面向接口与反射篇)
- PHP核心技术与最佳实践
- PHP 核心技术与最佳实践
- PHP最佳实践之异常和错误
- PHP核心技术与最佳实践学习(一)面向对象
- PHP核心技术与最佳实践PDF
- 《php核心技术与最佳实践》笔记2
- 《php核心技术与最佳实践》笔记3
- 《php核心技术与最佳实践》笔记4
- 《php核心技术与最佳实践》笔记5
- 《php核心技术与最佳实践》笔记6
- 《php核心技术与最佳实践》笔记7
- PHP和MySQL Web开发读书笔记---错误和异常处理
- 读《PHP 核心技术与最佳实践》---概况、目录
- PHP核心技术与最佳实践之正则表达式匹配规则
- PHP核心技术与最佳实践之正则表达式反向引用
- java实现图的最小生成树(MST)的普利姆(Prim)算法
- new和malloc的区别
- android视图学习---Android深入浅出之Surface[1]
- netbeans 去掉竖着红线的方法,设置文本限制线为透明!
- 使用kafka consumer high-level API开发的一些问题
- 《PHP核心技术与最佳实践》读书笔记(异常和错误处理篇)
- nginx配置多站点
- Java 中的抽象类
- 设计模式--单例模式
- Shell编程-素数
- ELF Hook原理
- 如何构造类与对象
- shell脚本显示颜色
- iOS开发之判断手机号和邮箱的合法性