/* Page prose (fr) */
"WhenAChildThrows" = "# Quand un enfant lève: `withThrowingTaskGroup`\n\nLes vraies images peuvent être corrompues: un fichier tronqué, une somme de contrôle erronée. Si le chargement d'une image peut `throw`, recours à `withThrowingTaskGroup`. Il fonctionne exactement comme la version simple, avec deux différences: tes closures enfants peuvent lever, et tu itères avec `for try await`. Si **un** enfant quelconque lève, le groupe **annule les enfants restants** et relève à nouveau cette erreur hors de la portée du groupe.";
"WhenAChildThrows-2" = "**Observe l'exécution:** l'image 4 lève, et la boucle `for try await` relève à nouveau, ce qui sort du groupe. En sortant, le groupe **annule les sœurs qui sont encore en cours d'exécution** et attend qu'elles s'arrêtent, puis l'erreur remonte jusqu'à ton `catch`. Tu verras `Stacking aborted: frame 4 was corrupt`, et la `sum` partielle est écartée. Une seule mauvaise image ne laisse pas sept autres tâches s'exécuter en arrière-plan.\n\n* callout(Note de conception): Relever à nouveau est une posture de *tout ou rien*: un échec abandonne le lot. Si tu préfères plutôt **sauter** les mauvaises images et empiler les bonnes, ne laisse pas l'enfant lever hors du groupe. Fais qu'il attrape sa propre erreur et renvoie quelque chose comme `Double?` (ou un petit enum de style `Result`), puis filtre les `nil` au fur et à mesure que tu récoltes. Choisis selon qu'une seule image corrompue devrait condamner toute la pile.\n\n[Précédent](@previous)  |  page 6 sur 9  |  [Suivant: La garantie structurée](@next)";
