Swift基础--Swift中的异常处理

Swift异常处理详解
本文介绍了Objective-C与Swift中异常处理的不同之处,详细解释了Swift中try、try!及try?三种异常处理方式,并通过示例代码展示了如何在实际项目中应用这些处理方式。

Swift中的异常处理

  • OC中的异常处理:方法的参数要求传入一个error指针地址,方法执行完后,如果有错误,内部会给error赋值
  • Swift中的异常处理:有throws的方法,就要try起来,然后do {}catch {do中出现错误异常才执行这里的代码}进行处理

762322-20160628002513843-587913483.png

  • 格式:
        do {

            try 有throws的方法

        } catch {

        }
  • Swift中异常处理的三种方式
    • try : 正常处理,必须用到do {} catch {}
    • try! : 告诉系统一定没有异常,也就是说不用do catch来处理,开发中不建议用.一旦有异常,程序崩溃
    • try? : 告诉系统可能有异常,也可能没有异常.如果没有异常,系统会自动将结果包装成一个可选类型给你,如果有异常,系统会返回nil.如果使用try?可以不是同do catch进行处理
  • 项目中的代码
        do {
            let objc = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments) as! [[String : AnyObject]]

            // 3.遍历字典数组,创建子控制器
            for dict in objc {

                guard let title = dict["title"] as? String else {
                    return
                }
                guard let vcName = dict["vcName"] as? String else {
                    return
                }
                guard let imageName = dict["imageName"] as? String else {
                    return
                }

                addChildViewController(vcName, title: title, normalImage: imageName)
            }

        } catch {
            // json数据异常,以默认方式创建控制器

            self .addChildViewController("HomeTableViewController", title: "首页", normalImage: "tabbar_home")
            self .addChildViewController("MessageTableViewController", title: "消息", normalImage: "tabbar_message_center")
            self .addChildViewController("NullViewController", title: "", normalImage: "")
            self .addChildViewController("DiscoverTableViewController", title: "发现", normalImage: "tabbar_discover")
            self .addChildViewController("ProfileTableViewController", title: "我", normalImage: "tabbar_profile")

        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值