與任何鏈:如果一個元素得到的破碎,整個產業鏈獲取的破碎。另一方面,如果事情往往因錯誤而失敗(例如,遠程連接,文件等),則鏈接變得尷尬。如果鏈接對象,一方面這可能是非常容易訪問的,另一方面,如果事情由於錯誤而失敗(例如遠程連接,文件等),則鏈接變得尷尬。
所以除非事情沒有返回預期的響應類型,而是指示失敗,異常可以幫助,但是 - 當鏈條斷開時 - 有限的使用。然而,我認爲拋出異常是你可以做錯誤處理的最好的事情(鏈接和用於開發自己的代碼)。
拋出異常的好處如下:您不需要銷燬使鏈可訪問的語法。
假設您在代碼中發生了錯誤。無論如何,最好拋出一個Exception來解決它。或者讓我們假設數據層已經被編碼,它經常失敗。拋出異常,那麼你就知道需要更多愛的部分。
在您的一般使用的代碼,具有鏈接,這些exceptions會打斷你(你總是可以追上他們,順便說一句,你可以turn errors into exceptions as well),但他們會指出你錯誤的原因,你可能沒有想過已經夠多了。
所以,
- 例外是錯誤處理鏈
- 例外幫你找出錯誤的各種來源,同時可以維持鏈語法的數據訪問的更高水平的一種方式。
不管有多好的鏈接,但是出現了它不再有意義的地步(我應該加上「和所有東西一樣」))。我不會說我是一個真正的鏈接迷,但即使作爲一個非粉絲,我也會不時在自己的代碼中使用這個原則。它可以很容易地編寫代碼,所以利用異常處理錯誤,我沒有遇到任何「真正的」(tm)問題。這比用這樣的虛假或者一些廢話來打破你的鏈條要好得多。
理論上你可以返回一個對象,它通過重載獲取任何屬性/成員調用set/get,但即使這很有趣,我認爲它只會引入更多的複雜性,而不是處理實際的,真實的生活錯誤。
所以,如果你鏈接到一個錯誤,你實際上看到錯誤,當你使用一個異常。這就是例外:因爲錯誤(或信號,也適用)而中斷應用程序的標準處理。
我很欣賞這個例子,謝謝Tim。如果有人要問,我更有信心解釋這一點。 – 2011-06-03 21:49:29