withThrowingTaskGroup - 在 'try' 表达式中不调用抛出函数

withThrowingTaskGroup - No calls to throwing functions occur within 'try' expression

问题:

我有以下显示警告的函数 No calls to throwing functions occur within 'try' expression

问题:

代码:

func f1() async throws {
    try await withThrowingTaskGroup(of: Int.self) { group in //No calls to throwing functions occur within 'try' expression
        group.addTask(priority: .high) {
            throw NSError()
        }
    }
}

您确实没有在 withThrowingTaskGroup 闭包中调用任何抛出函数或抛出任何东西。您刚刚为小组添加了一项任务 运行。这本身不会抛出任何东西。 addTask 没有标记为 throws,尽管它的闭包参数是。它只会在您以某种方式等待任务完成时抛出。

例如:

try await group.waitForAll()

或者如果你想遍历组中的每个任务:

for try await someInt in group {
    // ...        
}

如果您在 withThrowingTaskGroup 闭包中 return 某些内容,那么 withThrowingTaskGroup 也会 return。如果您在闭包中抛出错误,withThrowingTaskGroup 将抛出该错误(因为它是 rethrows),f1.

也会抛出该错误