我正在使用DispatchQueue这样的异步方式在测试中执行一些函数:
let queue: DispatchQueue = DispatchQueue.global(qos: DispatchQoS.QoSClass.userInitiated)
let group: DispatchGroup = DispatchGroup()
func execute(argument: someArg) throws {
group.enter()
queue.async {
do {
// Do stuff here
group.leave()
} catch {
Log.info(“Something went wrong")
}
}
group.wait()
}
Run Code Online (Sandbox Code Playgroud)
有时do块内的代码可能会抛出错误,我必须稍后才能发现。由于我正在开发一个测试,如果do块内的代码抛出错误,我希望它失败。有没有办法抛出错误,而不会在queue.async调用中捕获它?