尝试阻止抛出错误

时间:2015-10-18 20:59:35

标签: ios swift watchkit

我收到以下错误消息:

  

从这里抛出的错误不会被处理,因为封闭的catch是   并非详尽无遗

在下面的try语句中:

    if WCSession.isSupported() {
    let session = WCSession.defaultSession()
    if session.watchAppInstalled {
        let UserInfo = ["waste":floatWastedAmount]
        session.transferUserInfo(UserInfo)
        do {
            try session.updateApplicationContext(UserInfo)
        } catch let error as NSError {
            NSLog("Updating the context failed: " + error.localizedDescription)
        }
    }
}

我不确定为什么它说不详尽,因为任何错误都应该执行NSLog语句。任何指针都会有所帮助

2 个答案:

答案 0 :(得分:0)

更改为以下内容..了解所有错误的一般情况:

 if WCSession.isSupported() {
        if session.watchAppInstalled {
            let UserInfo = ["waste":floatWastedAmount]
            do {
                try session.updateApplicationContext(UserInfo)
            } catch {
                print("Updating the context failed")
            }
        }
    }

答案 1 :(得分:0)

捕获的错误列表必须是详尽无遗的,您必须处理所有可能的情况。就像switch语句一样,你可以使用空catch作为休息。所以你的代码很好,只需添加空捕获

do {
    try session.updateApplicationContext(UserInfo)
} catch let error as NSError {
    NSLog("Updating the context failed: " + error.localizedDescription)
} catch {}