我在寫一個API,它包裝了一些可能返回一些可能的錯誤條件的核心基礎Web功能。我正在努力決定處理API消費者應該處理的錯誤條件的最佳方式(如網絡超時,接收到意外結果,格式錯誤的XML等)。我想出了3種不同的型號,但我不確定要使用哪種型號:我應該如何處理API中的錯誤?
考慮到與方法takeAction
的對象不返回任何價值,我應該處理錯誤的方法是:
寫的方法是
- (BOOL)takeAction:(NSError **)error
讓消費者知道的方法是成功還是失敗,並且可以檢查錯誤對象來確定,寫的方法是
- (BOOL)takeAction
,這樣,再次,消費者知道,如果該方法成功或失敗,然後可以調用- (NSError *)getLastError
,以確定爲什麼方法失敗,或它寫爲
- (void)takeAction
並張貼通知,以便消費者可以訂閱的通知並傳遞NSError對象通知的用戶信息字典?
哪個更好?