【发布时间】:2020-03-01 11:21:56
【问题描述】:
我有一个函数在创建记录之前检查核心数据记录是否存在,并返回一个布尔值:如果存在则返回 true,如果不存在则返回 false。里面嵌套了一个 try, catch 语句。在这种有 return 语句的情况下,如何正确处理错误?目前,我有检查实现,但如果捕获被激活,则没有什么可以返回。我可以返回 true 以停止记录,但这不是“true”
func checkIfExists(id: String) -> Bool{
let fetchRequest: NSFetchRequest<Conversions> = Conversions.fetchRequest()
let predicate = NSPredicate(format: "id == %@", id)
fetchRequest.predicate = predicate
fetchRequest.fetchLimit = 1
do {
let count = try PersistenceService.context.count(for: fetchRequest)
if (count == 0){
return false
} else {
return true
}
}
catch let error {
print("Could not fetch \(error)")
return true // missing return in function
}
}
【问题讨论】:
标签: swift function error-handling