小编Ale*_*een的帖子

有没有办法在 Swift 3 中从异步闭包中抛出错误?

我正在使用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调用中捕获它?

asynchronous grand-central-dispatch swift swift3

6
推荐指数
1
解决办法
4985
查看次数