I blocchi di prova in Jenkins sono un modo per gestire le eccezioni che possono essere lanciate durante l'esecuzione di una pipeline di Jenkins. Ci consentono di definire un blocco di codice e specificare i blocchi separati da eseguire se viene lanciata un'eccezione.
Ciò può essere utile per gestire specifiche condizioni di errore e intraprendere azioni appropriate, come il riproduzione di una build non riuscita o la registrazione di un messaggio di errore.
Jenkins prova a catturare i blocchi
Per utilizzare i blocchi di prova in Jenkins, possiamo usare un blocco di script e definire un codice groovy all'interno di quel blocco.
Di seguito mostra la sintassi dei blocchi di prova che possiamo usare in Jenkins:
TentativoNel blocco di prova, possiamo mettere qualsiasi codice che vogliamo essere eseguiti. Se viene lanciata un'eccezione durante l'esecuzione, la pipeline salterà al blocco di cattura che definisce il codice da eseguire in caso di eccezione
Possiamo anche specificare un tipo specifico di eccezione da catturare impostandolo nel blocco di cattura. Per esempio:
TentativoQuesto può essere utile se vogliamo gestire diversi tipi di eccezioni in modo diverso. Ad esempio, potremmo voler riprovare una build se non riesce a causa di un errore di rete ma registrare un messaggio di errore ed uscire se non riesce a causa di un errore di sintassi.
Come gestire più eccezioni
Possiamo usare più blocchi di cattura per gestire diversi tipi di eccezioni. Per esempio:
TentativoIn questo caso, se viene lanciato un IOException, verrà eseguito il codice nel primo blocco di cattura. Se viene lanciato un nullpointerException, verrà eseguito il codice nel secondo blocco di cattura.
Il blocco finalmente
Inoltre, per cercare di catturare blocchi, possiamo anche utilizzare un blocco finalmente per specificare il codice che dovrebbe essere eseguito indipendentemente dal fatto che venga lanciata un'eccezione.
Ad esempio, la seguente sintassi mostra l'uso del blocco finalmente in una pipeline di Jenkins:
TentativoIl codice nel blocco finalmente verrà eseguito dopo il blocco di prova e sono stati eseguiti tutti i blocchi di cattura. Ciò può essere utile per ripulire le risorse o eseguire altre attività che dovrebbero essere svolte indipendentemente dal fatto che sia stata lanciata un'eccezione.
Esempio di utilizzo
La pipeline di esempio seguente dimostra come possiamo usare i blocchi di prova in una pipeline Jenkins:
tubaturaIn questa pipeline dichiarativa, il blocco di script racchiude un codice groovy che richiede all'utente un determinato input. Se non viene fornito alcun input, lo script riproverà il prompt tre volte prima di abortire.
Conclusione
In questo articolo, abbiamo imparato a utilizzare i blocchi di prova nella pipeline Jenkins per gestire le eccezioni.