try? try! try do catch try 使用详解

时间:2024-08-11 10:04:14

当一个使用一个方法发现后面 throws  说明可能会抛出异常 需要try 进行处理

try? try!   try  do catch 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 )