/* Page prose (zh-Hans) */
"WhenAChildThrows" = "# 当子任务抛出错误：`withThrowingTaskGroup`\n\n真实的帧可能是损坏的：文件被截断、校验和不对。如果加载一帧可能会 `throw`，那就用 `withThrowingTaskGroup`。它的用法和普通版本完全一样，只有两点不同：你的子任务闭包可以抛出错误，而且你要用 `for try await` 来遍历。如果**任何一个**子任务抛出错误，group 会**取消其余的子任务**，并把那个错误从 group 作用域里重新抛出。";
"WhenAChildThrows-2" = "**观察运行：** 第 4 帧抛出错误，`for try await` 循环重新抛出，于是退出了 group。在退出的过程中，group 会**取消仍在运行的兄弟任务**并等它们收尾，然后错误会在你的 `catch` 处浮现出来。你会看到 `Stacking aborted: frame 4 was corrupt`，而部分累加的 `sum` 会被丢弃。一个坏帧不会让另外七个任务继续在后台运行。\n\n* callout(设计笔记): 重新抛出是一种*全有或全无*的立场：一次失败就放弃整批。如果你更愿意**跳过**坏帧、只叠加好的那些，那就别让子任务把错误抛出 group。让它捕获自己的错误，返回像 `Double?` 这样的东西（或者一个小的 `Result` 风格的枚举），然后在收集时把 `nil` 过滤掉。根据一个损坏的帧是否应该毁掉整个叠加来做选择。\n\n[上一页](@previous)  |  第 6 / 9 页  |  [下一页: 结构化保证](@next)";
