Ios Swift中的Try Catch语句正在完成Try语句,但打印Catch错误

Ios Swift中的Try Catch语句正在完成Try语句,但打印Catch错误,ios,swift,try-catch,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: uniqu

我正在执行以下代码以更新我的本地存储:

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.")
}
append正确地向数组添加了一个项,这向我表明try正在工作。但是,控制台打印出“使用乐观响应更新缓存时出错”消息


我的理解是,只有try语句不成功,catch语句才会打印出来?不确定如何运行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 let error {
    print(error)
}

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

为什么要打印无意义的文字字符串而不是实际错误?这是AWS appsync教程中的代码模板。没有什么可以阻止函数调用完成处理程序,然后抛出。打印错误可能有助于您了解所发生的情况。这是我对试捕的理解不足。我接受了瓦迪安的建议,改为“把错误当作NSError来抓”打印错误,并试图解决它。谢谢