2017年4月7日 星期五

Error Handling 的重要性

被問到求學期間跟工作後寫程式上最大不同是什麼

應該就是開發一個程式會注重的點了

在學期間,課堂上給的功課,甚至是期末Project

都有個相對短的deadline,以及清楚的功能和分數

寫出來的程式只要完成所指定的功能就可以得到滿分了

所以我求學期間寫的程式只要注意功能有沒有完成就好了

測試的環境也都是固定的


但工作後由於程式演變成了產品

產品假如出錯,所造成的影響就比較大

尤其是開發金融相關軟體影響更大

像是華爾街交易員,假如他用的軟體出錯了會造成的影響都是幾百萬美金

所以正確處理edge case就是很重要的事情

基本的checking是必要的

例如: 在method 或 function開頭,對input做檢查

一個小小的檢查就能大幅降低程式出錯的機率

也對debug有很大的幫助 (因為你能肯定這個method的input不可能是null之類)



接下來就是檢查到異常input時丟出正確的exception

也會讓你的code更好用

假如你開發API要給別人用

有正確的Error訊息能幫助其他人不用看source code就能知道錯誤在哪


但值得注意的是在物件導向世界中

常常有很大一串的function call chain

錯誤能傳遞到哪一層就需要好好設計了



沒有留言:

張貼留言