/* Page prose (fr) */
"TheGoldenRule" = "# La règle d'or: reprendre exactement une fois\n\nTout ce qui touche aux continuations se résume à une loi:\n\n**Tu dois reprendre une continuation exactement une fois. Jamais zéro fois. Jamais deux fois.**\n\nLes deux échecs sont silencieux sur le moment et vicieux plus tard:\n\n* **Reprendre zéro fois**:  \nTu prends la continuation, puis un chemin (un `return` précoce, un `guard`, une branche d'erreur que tu as oubliée) saute la reprise. La fonction asynchrone qui t'attendait **se suspend pour toujours**. Pas de crash, pas de log par défaut: juste une tâche gelée pour toute la durée de vie du programme, retenant ce qu'elle a capturé. C'est le piège que la branche \"ni valeur ni erreur\" de la page précédente évite.\n* **Reprendre deux fois**:  \nDeux callbacks se déclenchent, ou tu reprends dans une boucle, ou une nouvelle tentative rappelle une seconde fois. La seconde reprise corrompt le runtime de concurrence.\n\nC'est pourquoi tu utilises les variantes **checked**: `withCheckedContinuation` et `withCheckedThrowingContinuation`. \"Checked\" signifie que le runtime *surveille* ta continuation pour exactement ces deux erreurs:\n\n* Reprends-la **deux fois** et il **trappe** délibérément: un crash dur avec un message du genre `SWIFT TASK CONTINUATION MISUSE: ... tried to resume its continuation more than once`. Bruyant à dessein: une double reprise est un vrai bug, et un crash clair en test vaut mieux qu'une corruption mystérieuse en production.\n* Laisse-la **fuir** (désallouée sans jamais avoir été reprise) et il journalise un avertissement du genre `... leaked its continuation without resuming it`, te disant exactement quel wrapper s'est bloqué.\n\nIl existe une paire `withUnsafeContinuation` sans ces vérifications. Ignore-la pendant que tu apprends: les versions checked ne coûtent presque rien et transforment les blocages silencieux et la corruption en problèmes bruyants et trouvables. Ne recours à \"unsafe\" qu'une fois qu'un wrapper est prouvé correct et que tu as mesuré que la vérification compte.\n\nL'habitude pratique: pour **chaque** chemin à travers ton callback (succès, chaque erreur, le `else` à l'air impossible), demande-toi \"est-ce que ça reprend la continuation?\" Exactement une reprise doit avoir lieu sur chaque chemin.\n\n[Précédent](@previous)  |  page 5 sur 8  |  [Suivant: Faire le pont vers un delegate](@next)";
