我正在尝试创建一个可以抛出异常的闭包,并将其作为参数传递给另一个函数。例如:
extension NSManagedObjectContext {
/// The same as performBlockAndWait, except it can handle closures that throw.
func performBlockAndWaitOrThrow(block: (() -> throws Void)) throws {
// ...
try block()
}
}
请注意| block | argument 是一个可以抛出异常的闭包。
但是,这无法编译。有什么办法可以做到这一点吗?
最佳答案
throws
关键字应位于箭头之前。编译如下:
extension NSManagedObjectContext {
/// The same as performBlockAndWait, except it can handle closures that throw.
func performBlockAndWaitOrThrow(block: (() throws -> Void)) throws {
// ...
try block()
}
}
关于ios - 抛出异常的 Swift2 闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33361278/