当一个使用一个方法发现后面 throws 说明可能会抛出异常 需要try 进行处理
1 try? 如果解析成功就有值 否则返回nil (推荐)
2 try! 如果解析成功就有值 否则直接崩溃 (不推荐)
3 try 如果 如果解析成功就有值 如果出错 能够处理异常 输出错误 do try catch
4 oc 中 ARC 开发自动添加 release autorelease retain 如果用try catch 一旦不平衡就会出现内存泄漏
let jsonStr = "{"name":."上官"}" let data = jsonStr.data(using: .utf8) // try? 如果解析成功就有值 否则返回nil (推荐) let json = try? JSONSerialization.jsonObject(with: data!, options: []) // try! 如果解析成功就有值 否则直接崩溃 (不推荐) let json0 = try! JSONSerialization.jsonObject(with: data!, options: []) // // // try 如果 如果解析成功就有值 如果出错 能够处理异常 输出错误 do try catch // do { let json1 = try JSONSerialization.jsonObject(with: data!, options: []) print( json1 ) } catch { print(error) } // print( json )