# `try_catch` — Fehlergrenze mit Retry-Policy **Zweck:** Umschließt beliebige Tasks: Wirft einer davon einen Fehler (`TaskResult error` oder PHP-Exception), bricht nicht mehr der ganze Workflow ab. Stattdessen wird — nach optionalen automatischen Wiederholungen mit Backoff — der ``-Zweig ausgeführt (z. B. Admin-Mail, Ersatzwert setzen) und der Workflow läuft weiter. Retries nutzen `resume_at` + `cron-resume`. **Parameter** | Name | Pflicht? | Default | Beschreibung | |---|---|---|---| | `try`/`task` | **ja** | — | Zu überwachende Tasks (wie eine Sequenz) | | `retry` (`max`) | nein | `0` | Anzahl automatischer Wiederholungen nach einem Fehler | | `retry` (`backoff`) | nein | `60` | Wartezeiten in Sekunden je Versuch (CSV); letzter Wert gilt für weitere | | `catch`/`task` | nein | — | Tasks nach erschöpften Retries; ohne `` wird der Fehler durchgereicht | **Eingangswerte:** Kontext der umschlossenen Tasks. Im ``-Zweig zusätzlich verfügbar: - `_fehler` — Fehlermeldung des letzten Versuchs - `_versuche` — Anzahl der Versuche **Ausgangswerte:** Die Ausgaben der ausgeführten ``- bzw. ``-Tasks landen im Kontext. Ohne `` endet der Task nach erschöpften Retries mit Fehler. **XML-Beispiel** ```xml manuell ``` **Hinweis:** Bei einem Retry wird nur der fehlgeschlagene Kind-Task zurückgesetzt; der Task geht in `waiting` und plant den Neuversuch über `resume_at`. `waiting`/`stop`/`return` der Kind-Tasks werden unverändert durchgereicht.