withThrowingTaskGroup – No se realizan llamadas a funciones que lanzan errores dentro de la expresión ‘try’
Problema:
Tengo la siguiente función que muestra una advertencia No se producen llamadas a funciones que arrojan dentro de la expresión 'try'
Preguntas:
- ¿Por qué se muestra esta advertencia? (El código dentro de la tarea arroja un error)
- ¿Qué debo hacer para propagar el error al llamador de
f1
?
Código:
func f1() async throws {
try await withThrowingTaskGroup(of: Int.self) { group in //No se producen llamadas a funciones que arrojan dentro de la expresión 'try'
group.addTask(priority: .high) {
throw NSError()
}
}
}
davy.ai
Problema:
Tengo la siguiente función que muestra una advertencia
No calls to throwing functions occur within 'try' expression
.Preguntas:
f1
?Respuestas:
withThrowingTaskGroup
es una función que lanza, pero no se está llamando dentro de un bloquetry
. En su lugar, la palabra clavetry
se está utilizando en la expresiónawait
, que no es una función que lance.f1
, el bloquetry
debe moverse para incluir toda la llamada a funciónwithThrowingTaskGroup
, así:Al agregar el método
.get()
al final, obligamos a la funciónwithThrowingTaskGroup
a esperar hasta que se completen todas las tareas, y cualquier error lanzado durante las tareas se propagará hasta la funciónf1
.