【编程好习惯】判断失败而不是成功
2009-07-02 10:47
288 查看
先看下面一段代码。
这段代码读起来时很是困难,因为其对于条件判断采用的是判断成功的方式。在现实工作中,我看到这样的连续嵌套的“判断成功”的代码级数超过15级。你想想 为了要读到最后真正的正常逻辑处理代码,我们得浏览到很后面,如果是在UNIX/LINUX上用vi什么的工具阅读代码,那可更是要崩溃了。
下面我们换一种编成方式,从前面的“判断成功”转变为“判断失败”。采用新的方式后,所写出来的代码如下所示。
代码的改动相当的直观,可读性也更高。出错了,程序就做出错处理并退出。反之,代码往下说明都是成功的case。
if (bbmt_physap_alarm_init () == RV_SUCC) { if (bbmt_trx_alarm_init () == RV_SUCC) { if (bbmt_dpd_bucket_init () == RV_SUCC) { if (bbmt_main_bhp_init_rfh_vars () == RV_SUCC) { // do something here for normal case } else { // error handling } } else { // error handling } } else { // error handling } } else { // error handling }
这段代码读起来时很是困难,因为其对于条件判断采用的是判断成功的方式。在现实工作中,我看到这样的连续嵌套的“判断成功”的代码级数超过15级。你想想 为了要读到最后真正的正常逻辑处理代码,我们得浏览到很后面,如果是在UNIX/LINUX上用vi什么的工具阅读代码,那可更是要崩溃了。
下面我们换一种编成方式,从前面的“判断成功”转变为“判断失败”。采用新的方式后,所写出来的代码如下所示。
if (bbmt_physap_alarm_init() != RV_SUCC) { // error handling return; } if (bbmt_trx_alarm_init () != RV_SUCC) { // error handling return; } if (bbmt_dpd_bucket_init() != RV_SUCC) { // error handling return; } if (bbmt_main_bhp_init_rfh_vars () != RV_SUCC) { // error handling return; } // do something here for normal case
代码的改动相当的直观,可读性也更高。出错了,程序就做出错处理并退出。反之,代码往下说明都是成功的case。
相关文章推荐
- 【编程好习惯】判断失败而不是成功
- socket异步通信__如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto成功(失败)
- Android--判断发送短信后的状态/发送成功Or发送失败
- 【编程好习惯】判断函数的返回值
- [置顶] iOS解读AFN查看请求头,判断响应成功、失败
- socket异步通信-如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto
- 一个优秀程序员的成功之道:15个不可忽视的编程好习惯!!~
- asp中如何判断数据插入成功失败
- 成功的反义词不是失败,而是从未行动。有一天你总会明白,遗憾比失败更让你难以面对。
- 如何避免大量的成功失败判断,如何不再纠结发现错误时是否该打印日志
- C语言的字符串转为OC中的字符串,控制台输入用户名和密码,判断输入的用户名是否是@“Frank”, 密码 是否是 @“lanou”, 如果用户名和密码都正确,则输出登录成功, 否则输出登录失败.
- SOCKET通信—如何设置成非阻塞模式、该模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto成功(失败)
- Android--判断发送短信后的状态/发送成功Or发送失败
- 如果你有想要做的事而别人告诉你说“很难,不能,你办不到的”。千万千万别相信他,因为他不是你,他不会为你承受你成功或失败的结局
- 如何判断mysqldump的成功与失败
- 一个优秀程序员的成功之道:15个不可忽视的编程好习惯!!~
- socket异步通信-如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto
- 成功不是终点,失败也并非末日,最重要的是继续前进的勇气
- 在主函数中提示用户输入用户名和密码。另写一方法来判断用户输入是否正确。该方法分别返回一个bool类型的登录结果和和一个string类型的登录信息。如登录成功,返回true及“登录成功”,若登录失败则返回false及“用户名错误”或“密码错误”(使用out参数)
- 从控制台输入用户名和密码, 然后 判断输入的用户名是否是@“Frank”, 密码 是否是 @“lanou”, 如果用户名和密码都正确,则输出登录成功, 否则输出登录失败.