/* Page prose (de) */
"WhenAChildThrows" = "# Wenn ein Kind wirft: `withThrowingTaskGroup`\n\nEchte Einzelbilder können beschädigt sein: eine abgeschnittene Datei, eine fehlerhafte Prüfsumme. Wenn das Laden eines Einzelbilds `throw` kann, greife zu `withThrowingTaskGroup`. Es funktioniert genau wie die schlichte Version, mit zwei Unterschieden: Deine Kind-Closures dürfen werfen, und du durchläufst sie mit `for try await`. Wenn **irgendein** Kind wirft, **bricht die Gruppe die verbleibenden Kinder ab** und wirft diesen Fehler aus dem Geltungsbereich der Gruppe weiter.";
"WhenAChildThrows-2" = "**Sieh es laufen:** Einzelbild 4 wirft, und die `for try await`-Schleife wirft weiter, was die Gruppe verlässt. Auf dem Weg hinaus **bricht die Gruppe die Geschwister ab, die noch laufen**, und wartet, bis sie sich beenden, und dann taucht der Fehler an deinem `catch` auf. Du siehst `Stacking aborted: frame 4 was corrupt`, und die teilweise `sum` wird verworfen. Ein schlechtes Einzelbild lässt nicht sieben andere Aufgaben im Hintergrund weiterlaufen.\n\n* callout(Designhinweis): Weiterwerfen ist eine *Alles-oder-nichts*-Haltung: Ein Fehlschlag gibt den Stapel auf. Wenn du stattdessen lieber schlechte Einzelbilder **überspringen** und die guten stapeln möchtest, lass das Kind nicht aus der Gruppe hinauswerfen. Lass es seinen eigenen Fehler fangen und etwas wie `Double?` (oder ein kleines Enum im Stil von `Result`) zurückgeben, und filtere dann die `nil`s heraus, während du einsammelst. Entscheide danach, ob ein einzelnes beschädigtes Einzelbild den ganzen Stapel zum Scheitern bringen sollte.\n\n[Zurück](@previous)  |  Seite 6 von 9  |  [Weiter: Die strukturierte Garantie](@next)";
