close
我想對於一些用語不精確,造成誤解與討論上的困難,應該是給出一些定義的時候了。
底下是我用對設計階段的意圖所下的定義:
我認為,資料結構、演算法、重構、設計模式等等,都圍繞在關於「成功」這部份的處理,其他的部份論及較少。
我對於例外處理的態度和這篇相同,除非必要,我盡量不使用例外處理。
在我最近幾年寫過的程式中,有一類處理是必須使用例外處理的,那就是必須使用 eval() 時的場合。
這類處理由於很難在執行完 eval() 之前確認其執行結果,為了防範未然,必須使用例外處理來使得程式可以不因其執行失敗而中斷。
對於中斷與例外處理的概念,可以參考這篇。文章是比較偏向組合語言的說明,但是其觀念是相通的。
底下是我用對設計階段的意圖所下的定義:
- 成功:可由函數名稱看出其執行時的意圖,於流程上預期得出之處理。
- 失敗:與成功相對,於流程上非預期得出之處理。
- 錯誤:觸及程式語言中無法自理的條件,使得執行程式必須終止之處理。
- 例外:觸及區域流程上無法自理的條件,但可能借程式語言更正之處理。
我認為,資料結構、演算法、重構、設計模式等等,都圍繞在關於「成功」這部份的處理,其他的部份論及較少。
我對於例外處理的態度和這篇相同,除非必要,我盡量不使用例外處理。
在我最近幾年寫過的程式中,有一類處理是必須使用例外處理的,那就是必須使用 eval() 時的場合。
這類處理由於很難在執行完 eval() 之前確認其執行結果,為了防範未然,必須使用例外處理來使得程式可以不因其執行失敗而中斷。
對於中斷與例外處理的概念,可以參考這篇。文章是比較偏向組合語言的說明,但是其觀念是相通的。
全站熱搜
留言列表