gpt4 book ai didi

Swift:如果 do return try 失败,则执行 catch

转载 作者:可可西里 更新时间:2023-11-01 00:57:12 24 4
gpt4 key购买 nike

我正在编写一段代码,它将从 CoreData 中获取一组 NSManagedObject。在我的代码中使用 do catch 语句时,这样做似乎不对,但这是我编写这行代码的最简单方法。

在任何其他情况下,当您使用 return 语句时,您将跳出您所在的当前函数。并且您可以放心,您的函数中的其他代码都不会执行超过 >return 语句。我想知道这是否同样适用于 Swift 的 do catch 范式。

class func getAll() -> [MMNotification] {
let context = appDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<MMNotification>(entityName: "MMNotification")
do {
return try context.fetch(fetchRequest)
}
catch {
// Will this 'catch' if the try fails,
// even if we said we are 'return'ing right before the 'try'?
return []
}
}

我在这里获取存储在 CoreData 中的通知列表。在 do block 中,您可以看到有问题的代码行。

问题

如果 try 在声明函数应该返回 后失败,catch block 是否会执行?

最佳答案

您所拥有的应该按预期工作。基本上,如果在 do 中的任何时间发生抛出,则调用 catch 并且不会执行抛出之后的任何代码。

关于Swift:如果 do return try 失败,则执行 catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43689778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com