[swift 进阶]读书笔记-第八章:错误处理 C8P7 错误和可选值 Error and Optionals

本文介绍Swift中try?关键字的使用,包括其作用、使用场景及与try!、try的区别。通过示例代码展示如何忽略错误并将返回值转化为可选值。

第八章:错误处理 Error Handling

8.7 错误和可选值 Error and Optionals

本小节围绕 try? 的用法和相关知识点展开来讲,内容不多,比较简单。

try? 关键字的作用: 可以忽略error抛出的错误, 并将返回值转化为可选值, error时返回nil, 成功时正常返回

示意Demo如下

/// parse方法是一个可以throw error的方法。
if let result = try? parse(text: input)
{ 
    print(result)
}
复制代码
使用场景:

你对你的错误信息并不在意的时候可以使用try? (swift 并不建议你去忽略错误,不过有些场景去使用try?, 真香~)

使用try? 意味着你能获得的错误信息少了,我们可以写一个optional的extension来补充获得想要的报错信息

Demo如下,只做了解即可。

extension Optional {
/// Unwraps `self` if it is non-`nil`.
/// Throws the given error if `self` is `nil`. 
    func or(error: Error) throws -> Wrapped {
        switch self {
            case let x?: return x   
            case nil: throw error
        } 
    }
}

do {
    let int = try Int("42").or(error: ReadIntError.couldNotRead)
} catch { 
    print(error)
}
复制代码
书中并没有讲try! try? try 的区别,这里我补充补充:

try!: "我写的代码肯定没有问题,如果有,你尽管崩溃 " 这个肯定不建议使用啊. 我也一直觉得我写的代码不可能有问题的,可是该崩的时候还是崩。。

try?: 上面已讲,略略略。。

try: 常规的异常处理 配合 do catch 一起使用。

文章源文件地址,大家如果有更好的想法和观点欢迎交流

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值