在做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)