Realm throw catch swift 2.0

Mic*_*ael 4 realm swift2

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

realm.write() {
  realm.add(whatever)
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

call可以抛出但是没有标记'try'并且没有处理错误

tge*_*ski 14

从我的想象中,realm.write()可以抛出异常.在Swift 2中,您使用do/catch处理异常并尝试.

我怀疑你应该这样做:

do {
   try realm.write() {
      realm.add(whatever)
   }
} catch {
    print("Something went wrong!")
}
Run Code Online (Sandbox Code Playgroud)

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


fin*_*elp 5

它看起来像是一个NSError被抛出.请参阅Swift 2.0源代码

添加到@ 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
}
Run Code Online (Sandbox Code Playgroud)