函式設計之美 再談函式需要返回錯誤碼嗎?

2022-05-08 14:21:09 字數 444 閱讀 7958

zhuweisky在文章函式設計之美--函式需要返回錯誤碼(一)? 中總結:不要讓錯誤傳播,在錯誤出現的發源地(萌芽期)就解決它!錯誤越是傳播到最後,關於處理它的上下文就丟失得越多,對於錯誤的蔓延就越是愛莫能助!同意他的結論,我們知道在物件導向中單一職責是很重要的理念。函式在設計時也要秉承這個理念,保證函式的功能單一。但是異常的發生是在單一功能之外的發生的,我們沒法避免這些異常的發生,但是主流引數錯誤這類的問題,個人認為不應該歸類到異常中。

我們以函式歸類的角度分析。類似getmaxelement這樣的工具函式,它不應該包括過多的異常處理,否則導致該函式複雜臃腫,隱性改變了該函式設計的初衷。呼叫方在呼叫工具函式時,要確保自身的引數的合法性,舉個例子:夾東西的,你卻給它湯,我想筷子的功能是不能正常發揮。

所以:我們應該明確工具函式的功能並正確使用,以避免錯誤的發生。如果發生異常就直接利用異常機制丟擲來。

函式設計之美 函式需要返回錯誤碼嗎(一)?

很久以前我就考慮這樣乙個問題 有這樣乙個函式,它的功能是從乙個整數集合中返回最大的那個數,如何設計這個函式的簽名了?當時沒有得出令自己滿意的答案,所以就擱淺了。今天重新思考,終於有所悟!現在把我思索的整個過程展現於此。最直觀的函式簽名設計如下 getmaxelement arraylisteleli...

Oracle Oracle之Chr函式返回

chr函式 返回 返回 string,其中包含有與指定的字元 相關的字元。chr 0 為0的字元 chr 1 chr 2 chr 3 chr 4 chr 5 chr 6 chr 7 響鈴 chr 8 回格 chr 9 tab 水平製表符 chr 10 換行 chr 11 tab 垂直製表符 chr ...

函式之返回值

返回值 將函式中運算的結果通過 return defadd a,b result a b print result return hello 100 呼叫函式 x,y add 2,6 print x,y return 返回值 1.return後面可以是乙個引數 接受的時候x add 1,2 2.re...