一,在接口契約中處理錯誤。
二,錯誤狀態(tài)可能不正確。
設(shè)備模糊地確認(rèn)操作是崇拜失敗的。比如,移動應(yīng)用發(fā)出HTTP請求以在兩個賬戶間轉(zhuǎn)賬。請求被銀行系統(tǒng)接收并正確地處理;然而,由于網(wǎng)絡(luò)失敗應(yīng)答卻丟失了,NSURLConnection報告超時。超時發(fā)生了,但卻是在轉(zhuǎn)賬請求成功之后發(fā)生的。如果重試該操作,就會導(dǎo)致重復(fù)轉(zhuǎn)賬,可能會造成用戶透支。
三,驗證負(fù)載。
JSON和xml就具備了驗證機(jī)制的負(fù)載格式,不過,以逗號分隔的值文件與HTML就沒有這種機(jī)制。
四,分離錯誤與正常的業(yè)務(wù)狀況。
五,總是檢查HTTP狀態(tài)。
六,總是檢查NSError的值。
七,使用一致的方法來處理錯誤。
八,總是設(shè)置超時時間。
在iOS中,HTTP請求的默認(rèn)超市時間是4分,這對于移動應(yīng)用來說過長了。大多數(shù)用戶都不會在任何應(yīng)用中等待4分鐘。開發(fā)者需要選擇合理的超時時間,方式是
評估網(wǎng)絡(luò)請求的可能響應(yīng)時間,然后將最差的網(wǎng)絡(luò)場景下的網(wǎng)絡(luò)延遲考慮進(jìn)去。
參考資料:《iOS網(wǎng)絡(luò)高級編程-iphone和iPad的企業(yè)應(yīng)用開發(fā)》
新聞熱點
疑難解答