Swift 2.0 中使用 try? 关键字

这篇博客介绍了在Swift 2.0中如何使用`try?`关键字来处理可能抛出异常的操作。作者通过解析JSON的例子展示了`try?`在处理错误时的特点,包括出乎意料的异常(即使在处理错误时也会退出方法)和重复抛出异常(合并`try?`表达式以避免)。文章通过代码示例帮助读者理解`try?`的使用和它与`try`的区别。
摘要由CSDN通过智能技术生成

Xcode 7 Beta 6 发布时,我一下子就被下面这三个特性迷住了:



还有一件事我没有发到推特上:我对 Swift 最大的改动——try?关键字——很不理解。

Swift 新增一个关键字try?try?会试图执行一个可能会抛出异常的操作。如果成功抛出异常,执行的结果就会包裹在可选值(optional)里;如果抛出异常失败(比如:已经在处理 error),那么执行的结果就是nil,而且没有 error。try?配合if letguard一起使用效果更佳。

 
     
>func produceGizmoUsingTechnology() throws -> Gizmo {...}
>func produceGizmoUsingMagic() throws -> Gizmo {...}
>
>if let result = try? produceGizmoUsingTechnology() {return result}
>if let result = try? produceGizmoUsingMagic() {return result}
>print("warning: failed to produce a Gizmo in any way")
>return nil
>

值得注意的是,try?总是给已经在求值的结果类型又增添一层Optional。如果一个方法正常返回的类型是Int?,那么使用try?调用这个方法就会返回Int??或者Optional<Optional<Int>>。(21692467)

我昨天发给

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值