Nodul Try / Catch
Nodul Try / Catch adaugă gestionarea erorilor și logica de reîncercare la workflow-urile dumneavoastră. Captează erorile de la nodurile anterioare și poate reîncerca automat secțiunea eșuată înainte de a redirecționa către calea de eroare.
Cum funcționează
Plasați nodul Try / Catch după o secvență de pași pe care doriți să îi protejați. Când fluxul ajunge la acest nod:
- Dacă toți pașii anteriori s-au finalizat cu succes, fluxul continuă prin ieșirea SUCCESS.
- Dacă a apărut o eroare, nodul reîncearcă secțiunea eșuată conform configurării de reîncercare.
- Dacă toate reîncercările sunt epuizate, fluxul este direcționat prin ieșirea ERROR.
Start → API Call → Process Data → [Try / Catch]
├── SUCCESS → Save Result → End
└── ERROR → Send Alert → End
Configurare
Reîncercări maxime
Numărul maxim de tentative de reîncercare înainte de a renunța. Setați la 0 pentru a dezactiva reîncercările și a capta doar erorile.
| Valoare | Comportament |
|---|---|
| 0 | Fără reîncercări – erorile merg direct la ieșirea ERROR |
| 1–3 | Potrivit pentru erori tranzitorii (timeout-uri de rețea, limite de rată) |
| 5+ | Folosiți cu precauție – luați în considerare timpul total de execuție |
Tipul de Backoff
Controlează cum se modifică întârzierea între reîncercări de-a lungul timpului.
- Fixed – Aceeași întârziere de fiecare dată. Exemplu cu 2s întârziere:
2s → 2s → 2s → 2s - Exponential – Întârzierea se dublează cu fiecare tentativă. Exemplu cu 1s întârziere:
1s → 2s → 4s → 8s
Backoff-ul exponențial este recomandat la apelarea API-urilor externe, deoarece oferă serviciilor supraîncărcate progresiv mai mult timp pentru recuperare.
Întârzierea de reîncercare
Timpul de așteptare de bază între tentativele de reîncercare. Se combină cu unitatea de întârziere (milisecunde, secunde sau minute).
Pentru backoff exponențial, aceasta este întârzierea inițială – întârzierile ulterioare se calculează ca delay × 2^(attempt - 1).
La epuizarea reîncercărilor
Ce se întâmplă când toate tentativele de reîncercare au eșuat:
- Continue to error path – Direcționează fluxul prin portul de ieșire ERROR. Folosiți aceasta când doriți să gestionați eșecul elegant (înregistrare în log, trimitere notificare, returnare valoare alternativă).
- Stop flow with error – Oprește întreaga execuție a workflow-ului cu un status de eroare. Folosiți aceasta când eșecul este irecuperabil.
Ieșiri
| Port | Descriere |
|---|---|
| SUCCESS | Fluxul continuă aici când nu a apărut nicio eroare sau o reîncercare a reușit |
| ERROR | Fluxul continuă aici când toate reîncercările sunt epuizate (doar dacă este selectat „Continue to error path") |
Exemple
Reîncercarea unui apel API instabil
HTTP Request → [Try / Catch: 3 retries, 2s fixed delay]
├── SUCCESS → Parse Response
└── ERROR → Return Default Value
Backoff exponențial pentru API-uri cu limită de rată
HTTP Request → [Try / Catch: 5 retries, 1s exponential]
├── SUCCESS → Store Data
└── ERROR → Log Error → Notify Team
Doar captare (fără reîncercare)
Code Node → [Try / Catch: 0 retries]
├── SUCCESS → Continue
└── ERROR → Send Error Report
Aspecte de reținut
- Nodurile anterioare Try / Catch-ului se vor re-executa la reîncercare. Dacă un nod trimite un email sau scrie într-o bază de date, acel efect secundar va apărea din nou. Asigurați-vă că operațiile reîncercate sunt sigure de repetat (idempotente).
- Timpul total de execuție se acumulează. 5 reîncercări cu backoff exponențial de 4s înseamnă așteptare de până la
1 + 2 + 4 + 8 + 16 = 31 secundeînainte ca calea de eroare să fie activată. - Numărul de reîncercări și ultimul mesaj de eroare sunt disponibile ca variabile în nodurile ulterioare, astfel încât le puteți include în rapoarte de erori sau log-uri.