異常使用的利弊我讀了蘋果對exception使用和NSError使用建議:優點和iOS中/的ObjectiveC
另外,我看了幾個類似的堆棧溢出的問題,其討論是否使用或不例外。
Using exceptions in Objective-C
我試圖找出使用異常的優劣作爲錯誤通知/ iOS中(坦白地說,我也不滿足於蘋果的判決處理方法(它說要做什麼,但它並沒有說明爲什麼我們應該這樣做):
您應該保留使用的編程異常或 意外運行時錯誤(如超出範圍集合訪問), 嘗試變更不可變對象,發送無效消息,並且 失去與窗口服務器的連接。當您創建應用程序時,而不是在運行時創建應用程序時,您通常會處理 這些類型的錯誤和異常。
異常使用情況的優點:
它不需要修改錯誤產生代碼和錯誤處理碼之間的所有中間碼
它不污染參數和返回值方法
缺點:
對於所有手動管理的內存代碼,我們必須格外小心(我們需要將它封裝在自動釋放對象中以確保釋放資源)。
我們需要小心我們的代碼和框架之間的邊界。如果我們的例外留下我們的代碼,我們可能會陷入困境(因爲框架可能會手動管理內存)
我錯過了什麼嗎?有額外的利弊嗎?
它看起來像異常應該罰款庫類似的代碼(當我們有相當大量的緊密打包的代碼,這與外部系統/框架沒有太多的溝通,而且看起來像是很難用於。其積極與其他框架交互的代碼
請問您的經驗證明這個理論
我明白在這個問題上的任何其他信息
我不真的看到缺點。無論如何,你想做這兩件事,不是嗎? – Sulthan
我會說,首先不是一個騙局。無論如何,你必須這樣做。其次可能是一種痛苦的(正如我所理解的ObjectiveC(Java)並沒有提供讓開發人員知道某些方法可以拋出的好方法,因此,只需在邊界代碼中添加一個方法並忘記它就很容易來捕獲這個代碼可能拋出的異常 –
但是,問題在於代碼和系統代碼之間的邊界通常非常複雜,如果使用Foundation集合類,那麼每次使用這些集合都是邊框,例如 – bbum