XZ_Swift之Swift中的错误/异常处理、反序列化

来源:互联网 发布:windows longhorn 编辑:程序博客网 时间:2024/06/10 16:44

Swift 2.0 推出的新的异常处理方法:使用 do-catch 机制获取和处理异常
try?
如果解析成功,就有值,否则,为nil
try!
当开发者非常确定某个方法或者函数,在使用时候是绝对不会抛出任何异常的,这种情况下我们可以使用 try!
do-catch
获取和处理异常,使用 catch 可以对异常的解析进行更为高级的处理
使用 throws 来声明异常,标明将会抛出异常,使用 throw 抛出异常

这里写图片描述

反序列化的时候经常会使用到

let jsonStr = "{\"name\":\"zhangsan\"}"        let data = jsonStr.data(using: .utf8)        // 反序列化 throw 抛出异常        // 方法一:推荐 try?:如果解析成功,就有值,否则,为nil       let json = try? JSONSerialization.jsonObject(with: data!, options: [])        print(json ?? "没有值")// 方法二:有风险,强烈不推荐 try!:如果解析成功,就有值,否则崩溃        let json1 = try! JSONSerialization.jsonObject(with: data!, options: [])        print(json1)// 方法三:处理异常,能够接受到错误,并且输出错误        // 缺点:语法结构复杂        do {            let json3 = try JSONSerialization.jsonObject(with: data!, options: [])            print(json3)        } catch {            // 直接可以输出错误            print(error)        }
原创粉丝点击