程序总是有一条主路径,称为happy path,在happy path之外,需要例外处理,常见方式有异常,错误码,防御式编程
设小写字母对应happy path,大写字母对应例外,数字对应外部代码,->表示调用
最普通的就是a->b->c->1->2这样的程序
然后给他加上例外处理
用异常就是a(catch B){}(catch C){}->b->c->1->2
用防御式编程就是if(can cause B){}else if(can cause C){} else{a->b->c->1->2}
用错误码就是a(check error code of B)->b(check error code of C)->c->1->2
异常
优点,可以在一个地方统一处理,也可以在几个的地方分别处理,针对接口编程,并且醒目
缺点,性能,这是可以无视的缺点
防御式编程
优点,可以在一个地方统一处理,也可以在几个的地方分别处理,不过不醒目
缺点,防御是针对实现编程,异常是针对接口编程,所以如果你是至顶向下编程的话,这需要你能未卜先知,另外为了做到100%防御,你需要了解诸如网线是否被老鼠啃了等问题,这需要你了解宇宙的真理
错误码
优点,接近针对接口编程,可以不需要未卜先知,也不需要知道宇宙的真理,不过这好处其实异常也有
缺点,不适合统一处理,如果想统一处理的话,要么错误码层层传递,要么全局变量型的错误码泛滥
所以异常>错误码>防御式编程
稍微复杂一点,只需要a->b->1->c->2,明显看出要处理好C,异常才是最佳实践
分享到:
相关推荐
防御式编程 Defensive Programming.PPT完整版(精品课件) 大纲: 保护程序免遭非法输入数据的破坏 断言 错误处理技术 异常 隔离程序 辅助调试代码
本文档对Linux 网络编程中socket系列函数报的错误码及其常见处理总结
Linux网络编程socket错误码分析[参考].pdf
Oracle错误码大全Oracle错误码大全Oracle错误码大全Oracle错误码大全Oracle错误码大全Oracle错误码大全Oracle错误码大全Oracle错误码大全Oracle错误码大全Oracle错误码大全Oracle错误码大全
CPU 卡常用的 APDU 指令错误码
《JavaScriptES6函数式编程入门经典》使用JavaScriptES6带你学习函数式编程。你将学习柯里化、偏函数、高阶函数以及Monad等概念。 目前,编程语言已经将焦点从对象转移到函数。JavaScript支持函数式编程,并允许...
PC-Lint错误码,用于查询对应错误
informix错误码
很全的IBM WebSphere MQ 错误码大全
基于i18n国际化微服务统一处理错误码的demo
QQ安全组件异常错误码0x00008C02该怎么解决?.docx
db2 错误码 大全,通过查询错误码,可以知道自己错误的原因
TR069错误码,ACS错误代码,CPE 错误代码等,有助于理解协议包返回码
ORACLE错误码大全.doc 包含了大多数常用的错误码,可用于迅速定位数据库操作编程中的错误。
db2错误码一览表 快速定位DB2错误信息
pylint错误码
ORACLE错误码大全
oracle 11g 错误码大全
DB2错误码大全 DB2错误码大全 DB2错误码大全