swift-之try-catch

作者: 码农冰冰 | 来源:发表于2016-11-25 14:53 被阅读136次
  • 前段时间朋友打电话偶尔给我抱怨到,有人质疑为什么iOS 开发没有用try catch处理异常,自己开发在iOS开发过程中现在用的都是自动内存管理,有问题崩溃了就解决了,然后项目中也用到了友盟统计来查看用户的崩溃信息,感觉没有必要,直到今天突然看到swift也有try-catch,前面都是闲话,下面总结下:

swift中的try 有三种方式

  • try?

" 推荐try? 如果解析成功就有值,否则就为nil
// 用guard守护确保有值

        let jsonString = "{\"name\":\"zhang\"}"
        let data = jsonString.data(using: .utf8)
//        用guard守护确保有值
        guard let json = try? JSONSerialization.jsonObject(with: data!, options: []) else {
          return
        }
    print("---------------\(json)")


  • try!

方法2强烈不推荐try!,如果解析成功就有值,否则崩溃,有风险

        let json2 = try! JSONSerialization.jsonObject(with: data!, options: [])
        print("---------------\(json2)")
  • 处理异常,能够接收到错误,并且输出错误

语法结构复杂,而且{}

        do {
            let json3 = try JSONSerialization.jsonObject(with: data!, options: [])
            print(json3)
        }catch  {
          print(error)
        }

另外作为扩展的知识点
OC中有人用try catch吗?为什么?
因为我们现在用的一般事自动内存管理开发:编译自动添加retain\release\autorelease 如果使用try catch一旦不平衡,就会出现内存泄漏

有什么错误,或者有更多的见解,请赐教谢谢!

相关文章

网友评论

    本文标题:swift-之try-catch

    本文链接:https://www.haomeiwen.com/subject/wttwpttx.html