领域 - 在 realm.create 中捕获异常
Realm - Catch an exception in realm.create
如何在 Realm 框架的创建方法中捕获异常?我正在尝试这样,但我从来没有捕获到关于重复主键的异常。
do {
try! realm.write() {
let person = realm.create(Person.self, value: ["Jim", 0])
person.age.value = 30
}
}
catch {
print("Error")
}
错误:
realm1[922:26059] *** Terminating app due to uncaught exception 'RLMException',
reason: 'Can't set primary key property 'name' to existing value 'Jim'.'
do {...} catch {...}
仅用于捕获从 swift 方法抛出的错误,不用于捕获异常。
The standard Cocoa convention is that exceptions signal programmer error and are not intended to be recovered from.
- LLVM Docs
因此,如果抛出异常,通常意味着您没有在操作前检查某些内容。在这种情况下,您应该检查一个 Person
是否已经存在并具有该主键,然后更新它或创建一个新的 Person
(如果不存在)。
如何在 Realm 框架的创建方法中捕获异常?我正在尝试这样,但我从来没有捕获到关于重复主键的异常。
do {
try! realm.write() {
let person = realm.create(Person.self, value: ["Jim", 0])
person.age.value = 30
}
}
catch {
print("Error")
}
错误:
realm1[922:26059] *** Terminating app due to uncaught exception 'RLMException',
reason: 'Can't set primary key property 'name' to existing value 'Jim'.'
do {...} catch {...}
仅用于捕获从 swift 方法抛出的错误,不用于捕获异常。
The standard Cocoa convention is that exceptions signal programmer error and are not intended to be recovered from. - LLVM Docs
因此,如果抛出异常,通常意味着您没有在操作前检查某些内容。在这种情况下,您应该检查一个 Person
是否已经存在并具有该主键,然后更新它或创建一个新的 Person
(如果不存在)。