Intensiv DevOps-uddannelse · Lektion

Try / catch med rescue & always

Håndtér fejl på en elegant måde.

Lektion 2 af 413 trin

Try / catch med rescue & always er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Blocks får et sikkerhedsnet

Kombinér en block med rescue og always for at få try, catch og finally til dine opgaver. Fejl kan derefter håndteres. 🛟

rescue-sektionen

Hvis en opgave i blocken mislykkes, går Ansible til rescue og kører disse opgaver i stedet, ligesom en catch-klausul.

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

always kører uanset hvad

Sektionen always køres, uanset om blocken lykkedes eller mislykkedes, hvilket er perfekt til oprydning som at fjerne en midlertidig fil.

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

Alle tre sammen

Brug block, rescue og always som én struktur: Prøv arbejdet, fang fejl, og afslut derefter altid korrekt.

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

rescue nulstiller fejlen

Hvis rescue gennemføres uden fejl, er værten ikke længere markeret som mislykket. Playet fortsætter, som om blocken var lykkedes.

Kørselsrækkefølge

Opgaverne i blocken køres først. Ved en fejl springes resten af blocken over, og rescue starter. always køres sidst i alle tilfælde.

Når rescue selv mislykkes

Hvis en opgave i rescue også mislykkes, markeres værten som mislykket, men always køres stadig, før playet stopper for denne vært.

Undersøg fejlen

I rescue kan du læse ansible_failed_task og ansible_failed_result for at se, hvilken opgave der gik galt, og hvorfor.

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

En praktisk anvendelse: tilbagerulning

Det klassiske mønster er at placere udrulningen i en block, fortryde ændringen i rescue og genstarte eller låse op i always. Ren gendannelse ved hver kørsel.

Det handler ikke kun om at skjule fejl

rescue bruges til elegant gendannelse, ikke til at tie fejl ihjel. Log fejlen, og ret tilstanden. Lad som om intet gik galt. ⚠️

Uden rescue stopper det hårdt

Uden en rescue-sektion opfører en block med fejl sig som enhver anden opgave med fejl: Den stopper straks playet for denne vært.

Hurtigt tjek

Lad os bekræfte, hvordan always fungerer.

Opsamling

rescue fanger fejl i blocks og gendanner værten, mens always altid køres til oprydning. Try, catch og finally i Ansible. ✅

Gratis at komme i gang

Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
142
Lektioner
568

Ofte stillede spørgsmål

Er lektionen “Try / catch med rescue & always” gratis?

Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Try / catch med rescue & always”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Try / catch med rescue & always”?

Håndtér fejl på en elegant måde. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?

Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Try / catch med rescue & always”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?

Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Gruppér tasks med block
  2. Try / catch med rescue & always
  3. Styr fejl: failed_when & ignore_errors
  4. Brugerdefinerede assertions med modulet fail
← Tilbage til Intensiv DevOps-uddannelse