Swift—拋異常(do..catch)與(try,try?,try!)的使用

* throws拋出異常, 那么就必須通過try來處理

* try : 標準的處理方式, 該方式必須結(jié)合do catch來處理

* try? :告訴系統(tǒng)可能有錯, 也可能沒錯, 如果發(fā)生錯誤, 那么返回nil, 如果沒有發(fā)生錯誤, 會見數(shù)據(jù)包裝成一個可選類型的值返回給我們

這種使用方式, 相當于忽略錯誤

* try! : 告訴系統(tǒng)一定沒錯, 如果發(fā)生錯誤, 程序會崩潰. 不推薦使用

'' // 1.獲取JSON文件路徑

let path = NSBundle.mainBundle().pathForResource("MainVCSettings.json", ofType: nil)!

'' // 2.加載JSON文件

'' let data = NSData(contentsOfFile: path)!

'' // 3.將JSON文件加載進來的數(shù)據(jù)轉(zhuǎn)換為對象 字典數(shù)組

//try結(jié)合do..catch一起使用

do {

'' // 編寫有可能出現(xiàn)錯誤的代碼

'' let objc = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers)

''? ?? }catch {

// 只要do后面大括號中的代碼拋出了異常, 就會執(zhí)行catch

// 如果do后面大括號中沒有拋出異常, 那么catch后面大括號中的代碼不執(zhí)行

'' WFLog(error)

}

//try!使用

let objc = try! NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers)

作者:Windv587

鏈接:http://www.itdecent.cn/p/50b3d40f1150

來源:簡書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容