【问题标题】:Realm throw catch swift 2.0Realm throw catch swift 2.0
【发布时间】:2015-09-18 11:55:27
【问题描述】:

有谁知道以下领域函数的 try-catch 语法是什么?

realm.write() {
  realm.add(whatever)
}

我收到以下错误:

调用可以抛出,但它没有用'try'标记并且错误不是 处理过

【问题讨论】:

    标签: swift2 realm


    【解决方案1】:

    据我想象,realm.write() 可以抛出异常。在 Swift 2 中,您使用 do/catch 和 try 处理异常。

    我怀疑你应该这样做:

    do {
       try realm.write() {
          realm.add(whatever)
       }
    } catch {
        print("Something went wrong!")
    }
    

    如果 realm.write() 抛出异常,将立即调用 print 语句。

    【讨论】:

      【解决方案2】:

      看起来 NSError 被抛出。见Swift 2.0 source

      补充@tgebarowski 的回答:

      do {
          try self.realm.write {
              realm.add(whatever)
          }
      } catch let error as NSError {
          print("Something went wrong!")
          // use the error object such as error.localizedDescription
      }
      

      【讨论】:

        【解决方案3】:

        你也可以试试

        try! realm.write {
            realm.add(whatever)
        }
        

        【讨论】:

        • 我看到这是一些 Realm 文档,但我不明白如果他们从不打算让所有函数失败,他们为什么会抛出所有函数。 try! 似乎有风险不是吗?
        猜你喜欢
        • 2012-06-04
        • 2010-12-14
        • 2016-01-02
        • 2013-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多