浏览 4484 次
锁定老帖子 主题:异常,错误码,防御式编程
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-12-15
最后修改:2011-12-15
设小写字母对应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,异常才是最佳实践 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-12-15
assert 断言
|
|
返回顶楼 | |
发表时间:2011-12-21
gtssgtss 写道 所以异常>错误码>防御式编程
稍微复杂一点,只需要a->b->1->c->2,明显看出要处理好C,异常才是最佳实践 楼主既然把优缺点都总结出来了,为何还得出此结论? |
|
返回顶楼 | |
发表时间:2011-12-21
jiangshaolin 写道 gtssgtss 写道 所以异常>错误码>防御式编程
稍微复杂一点,只需要a->b->1->c->2,明显看出要处理好C,异常才是最佳实践 楼主既然把优缺点都总结出来了,为何还得出此结论? 我觉得想未卜先知和习得宇宙的真理都太难了,所以错误码比防御式编程实在的多 |
|
返回顶楼 | |
发表时间:2011-12-21
看来还是异常好些啊
|
|
返回顶楼 | |