DevOps-bootcamp · Lektion

Try / catch med rescue och always

Återhämta Er smidigt från fel

Lektion 2 av 413 steg

Try / catch med rescue och always är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Block får ett säkerhetsnät

Kombinera ett block med rescue och always för att få try, catch och finally för era uppgifter. Fel blir möjliga att återhämta sig från. 🛟

rescue-sektionen

Om någon uppgift i blocket misslyckas hoppar Ansible till rescue och kör dessa uppgifter i stället, ungefär som en catch-sats.

- block:
    - ansible.builtin.command: /opt/risky-step
  rescue:
    - ansible.builtin.debug:
        msg: "Step failed, recovering"

always körs oavsett vad som händer

Sektionen always körs oavsett om blocket lyckades eller misslyckades, vilket passar perfekt för rensning, till exempel att ta bort en temporär fil.

- block:
    - ansible.builtin.command: /opt/deploy
  always:
    - ansible.builtin.file:
        path: /tmp/lock
        state: absent

Alla tre tillsammans

Använd block, rescue och always som en enda struktur: försök utföra arbetet, fånga fel och avsluta sedan alltid på ett rent sätt.

- block:
    - ansible.builtin.command: /opt/deploy
  rescue:
    - ansible.builtin.debug:
        msg: "Rolling back"
  always:
    - ansible.builtin.debug:
        msg: "Done either way"

rescue återställer felstatusen

Om rescue slutförs utan fel är värden inte längre markerad som misslyckad. Playen fortsätter som om blocket hade lyckats.

Körningsordning

Uppgifterna i blocket körs först. Vid fel hoppas resten av blocket över och rescue startar. always körs sist i alla fall.

När rescue själv misslyckas

Om en uppgift i rescue också misslyckas markeras värden som misslyckad, men always körs fortfarande innan playen stoppas för den värden.

Granska felet

Inuti rescue kan ni läsa ansible_failed_task och ansible_failed_result för att se vilken uppgift som gick sönder och varför.

- rescue:
    - ansible.builtin.debug:
        msg: "Failed task was {{ ansible_failed_task.name }}"

Ett verkligt användningsfall: återställning

Det klassiska mönstret är att placera deploy i block, ångra ändringen i rescue och starta om eller låsa upp i always. Ren återställning vid varje körning.

Inte bara döljande av fel

rescue är till för återställning på ett kontrollerat sätt, inte för att tysta fel. Logga felet och återställ tillståndet; låtsas inte att inget gick fel. ⚠️

Utan rescue blir det ett hårt stopp

Utan en rescue-sektion beter sig ett misslyckat block som vilken misslyckad uppgift som helst: det stoppar playen för den värden direkt.

Snabb kontroll

Låt oss bekräfta hur always fungerar.

Sammanfattning

rescue fångar fel i block och återställer värden, medan always körs varje gång för rensning. Try, catch, finally för Ansible. ✅

Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Try / catch med rescue och always” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Try / catch med rescue och always”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Try / catch med rescue och always”?

Återhämta Er smidigt från fel Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Try / catch med rescue och always”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Gruppera uppgifter med block
  2. Try / catch med rescue och always
  3. Styr fel: failed_when och ignore_errors
  4. Anpassade assertioner med modulen fail
← Tillbaka till DevOps-bootcamp