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øvI 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øvDette 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øvI 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øvKoden 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ørledningI 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.