Swift中的Try-Catch语句完成Try语句但是打印Catch错误

时间:2018-03-12 08:01:53

标签: ios swift try-catch

我正在执行以下代码来更新我的本地商店:

do {
    // Update our normalized local store immediately for a responsive UI
    try transaction?.update(query: PostsQuery()) { (data: inout PostsQuery.Data) in
        data.allPosts?.append(PostsQuery.Data.AllPost.init(id: uniqueId, title: mutation.title, author: mutation.author, content: mutation.content, version: 0))
    }
} catch {
    print("Error updating the cache with optimistic response.")
}

追加是正确地向数组添加一个项目,这将向我表明该尝试正在运行。但是,控制台打印出“使用乐观响应更新缓存时出错”。消息。

我的理解是,只有当try语句不成功时才会打印出catch语句?不确定如何运行try语句的完成以及catch语句是否打印?

1 个答案:

答案 0 :(得分:1)

更新代码以打印错误的详细信息。

do {
    // Update our normalized local store immediately for a responsive UI
    try transaction?.update(query: PostsQuery()) { (data: inout PostsQuery.Data) in
        data.allPosts?.append(PostsQuery.Data.AllPost.init(id: uniqueId, title: mutation.title, author: mutation.author, content: mutation.content, version: 0))
    }
} catch let error {
    print(error)
}

只有在do块中抛出错误时才会调用catch块,因此您需要查看错误是什么并处理该情况