所有在Xcode停止採伐誤差,如何使@try @catch
我有一段代碼運行在大量的記錄,並在大約一半的情況下,失敗(這是確定的,一些記錄簡單地沒有所需的數據)我把這段代碼放在一個@try @catch塊中,使它運行順利,我們試圖做我們的事情,如果我們失敗了,我們有一些默認的行爲。
當它在@try塊中失敗時,它經常是無法識別的選擇器錯誤,因爲它位於@try塊中,我發現這個錯誤,但它仍然每次都被記錄下來,即使我沒有從我的@ catch塊。這非常煩人,因爲它堵塞了我的日誌記錄。如果我想從@ try/@ catch中記錄錯誤,我會在@catch右邊處理這個問題嗎?
我怎麼能阻止在@try塊錯誤記錄那些在@catch塊隨後解決的XCode?
我使用的XCode 4.2
感謝
在Objective-C中,您通常應避免使用異常(@ try/@ catch [/ @ finally])進行流量控制。例外情況的成本非常高(與運行時間相比,如JVM或針對異常使用進行了優化的CLR)。而且,大多數Cocoa框架並不是特例安全的。因此,通過Cocoa框架代碼拋出異常是很危險的,並且可能會導致您的應用程序出現奇怪,難以診斷和災難性的情況(考慮可能的數據丟失)。 – 2012-02-23 09:28:58
代替使用異常,Cocoa代碼使用NSError來指示應用程序內可恢復的錯誤條件。異常用於表示應用程序無法恢復的條件。 – 2012-02-23 09:29:03