在做swift 的開發的時候 有的時候 有些方法會顯示throws ,意思就是有可能會拋出異常,所以在遇到有throws 的方法中需要時用try catch
do{
}
catch{
// 只要do 里的事情,發生了異常就會調用catch里面的方法
}
在做swift 開發中經常會有拋出異常的狀況
try 有三種
try 正常處理,也就是通過 do catch 來處理
try! 告訴系統一定不會有異常, 也就是說可以不通過 do catch 來進行處理,但是一旦出現錯誤,程序會直接crash掉
try? 告訴系統可能會有異常,也可能不會有錯誤,如果沒錯,系統會直接將結果自動包裝稱一個可選類型,如果程序出現錯誤,則會返回一個nil ,同時 使用了 try? 可以不在使用 do catch 來處理
但是在開發中,本人更建議使用do catch 的方法來進行處理
do{
let objcstrng = try JSONSerialization.jsonObject(with: jsonData as Data, options: JSONSerialization.ReadingOptions.mutableContainers)
STLog(message: "\(objcstrng)")
}catch{
// 只要 do 里的事情發生了異常 就會調用這個方法
}
這個里面使用的是try! 但是當jsonData 為空的時候 會直接crash
let objcstring = try! JSONSerialization.jsonObject(with: jsonData as Data, options: JSONSerialization.ReadingOptions.mutableContainers)
STLog(message: objcstring)
let objcstring = try? JSONSerialization.jsonObject(with: jsonData as Data, options: JSONSerialization.ReadingOptions.mutableContainers)
STLog(message: objcstring)