首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Swift 3中处理尝试和抛出

在Swift 3中处理尝试和抛出
EN

Stack Overflow用户
提问于 2016-09-28 23:34:52
回答 1查看 46K关注 0票数 43

在Swift 3之前,我使用的是:

代码语言:javascript
复制
guard let data = Data(contentsOf: url) else {
                print("There was an error!)
                return
            }

然而,我现在不得不使用dotrycatch。我不熟悉这个语法。我该如何复制这种行为?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-28 23:46:04

这里的不同之处在于,Data(contentsOf: url)不再返回Optional,它抛出。

因此您可以在Do-Catch中使用它,但不能使用guard

代码语言:javascript
复制
do {
    let data = try Data(contentsOf: url)
    // do something with data
    // if the call fails, the catch block is executed
} catch {
    print(error.localizedDescription)
}

请注意,您仍然可以将guardtry?一起使用,而不是try,但随后可能的错误消息将被忽略。在这种情况下,您不需要Do-Catch块:

代码语言:javascript
复制
guard let data = try? Data(contentsOf: url) else {
    print("There was an error!")
    // return or break
}
// do something with data
票数 109
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39751923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档