Jenkinsfile Try-Catch

Jenkinsfile Try-Catch

Try-and-hatch-blokker i Jenkins er en måte å håndtere unntak som kan kastes under utførelsen av en Jenkins-rørledning. De lar oss definere en kodeblokk og spesifisere separate blokker for å utføre hvis et unntak kastes.

Dette kan være nyttig for å håndtere spesifikke feilforhold og ta passende tiltak, for eksempel å prøve på nytt en mislykket bygging eller logge en feilmelding.

Jenkins prøver å fange blokker

For å bruke prøve-og-fangstblokkene i Jenkins, kan vi bruke en skriptblokk og definere en groovy-kode inne i den blokken.

Følgende viser syntaks for prøve-og-fangstblokkene vi kan bruke i Jenkins:

prøv
// kodeblokk for test
fangst (unntak e)
// utfør hvis noe unntak kastes

I prøveblokken kan vi legge hvilken som helst kode som vi ønsker å bli utført. Hvis et unntak kastes under utførelsen, vil rørledningen hoppe til fangstblokken som definerer koden som skal utføres i tilfelle et unntak

Vi kan også spesifisere en bestemt type unntak fra fangst ved å sette den i fangstblokken. For eksempel:

prøv
// kodeblokk for å kjøre
fangst (ioException e)
// utfør hvis en IOException blir kastet

Dette kan være nyttig hvis vi ønsker å håndtere forskjellige typer unntak annerledes. For eksempel kan det være lurt å prøve på nytt hvis den mislykkes på grunn av en nettverksfeil, men logger en feilmelding og avslutter hvis den mislykkes på grunn av en syntaksfeil.

Hvordan håndtere flere unntak

Vi kan bruke flere fangstblokker for å håndtere forskjellige typer unntak. For eksempel:

prøv
// kodeblokk for test
fangst (ioException e)
// utfør hvis en IOException blir kastet
fangst (nullpointerException e)
// utføre hvis en nullpointerException kastes

I dette tilfellet, hvis en IOException kastes, vil koden i den første fangstblokken bli utført. Hvis en nullpointerException kastes, blir koden i den andre fangstblokken utført.

Den endelig blokkeringen

I tillegg, for å prøve å fange blokker, kan vi også bruke en endelig blokkering for å spesifisere kode som bør utføres uavhengig av om et unntak kastes.

For eksempel viser følgende syntaks bruken av den endelig blokken i en Jenkins -rørledning:

prøv
// kodeblokk
fangst (unntak e)
// utføre på unntak
endelig
// utfør uavhengig av om et unntak kastes

Koden i den endelig blokkeringen vil bli utført etter forsøksblokken og eventuelle fangstblokker er utført. Dette kan være nyttig for å rydde opp i ressurser eller utføre andre oppgaver som bør gjøres uavhengig av om et unntak ble kastet.

Eksempelbruk

Følgende eksempel Pipeline demonstrerer hvordan vi kan bruke prøve-og-fangstblokkene i en Jenkins-rørledning:

rørledning
agent noen
Stadier
scene ('hurtig for input')
trinn
manus
def userInput
UserInput = Inngangsmelding: 'Skriv inn en verdi:', Id: 'User_Input'
prøv
ekko "Brukerinngang: $ userInput"
fangst (unntak e)
userInput = Inngangsmelding: 'Ugyldig inndata. Vennligst skriv inn en gyldig verdi: ', ID:' user_input '
prøv (3) på nytt (3)





I denne deklarative rørledningen vedlegger skriptblokken en groovy -kode som ber brukeren om en gitt inngang. Hvis det ikke er gitt innspill, vil skriptet prøve på nytt tre ganger før det aborterer.

Konklusjon

I denne artikkelen lærte vi hvordan vi bruker prøve-og-fangstblokkene i Jenkins-rørledningen for å håndtere unntak.