[編程好習(xí)慣] 判斷失敗而不是成功
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
先看下面一段代碼。
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 } 這段代碼讀起來時很是困難,因為其對于條件判斷采用的是判斷成功的方式。在現(xiàn)實工作中,我看到這樣的連續(xù)嵌套的“判斷成功”的代碼級數(shù)超過15級。你想想為了要讀到最后真正的正常邏輯處理代碼,我們得瀏覽到很后面,如果是在UNIX/LINUX上用vi什么的工具閱讀代碼,那可更是要崩潰了。 下面我們換一種編成方式,從前面的“判斷成功”轉(zhuǎn)變?yōu)椤芭袛嗍 ?。采用新的方式后,所寫出來的代碼如下所示。 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 代碼的改動相當(dāng)?shù)闹庇^,可讀性也更高。出錯了,程序就做出錯處理并退出。反之,代碼往下說明都是成功的case。 文章來源:http://yunli.blog.51cto.com/831344/172180 該文章在 2010/2/1 22:21:48 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |