当我们使用嵌套的 try-catch 块时,如何终止 jenkins 管道中的执行?



我正在使用嵌套的try-catch块来定义jenkins管道。在执行时,如果我在父 try-catch 块中有另一个 try-catch 块,并且子 try-catch 块中出现问题,它将跳转到子 catch 块,然后再次继续执行父 try-catch 块中的代码。

我已经尝试设置当前构建.result='失败'和错误"发生错误">,但它仍然将继续执行。我希望管道状态为失败并终止其余代码的执行。

try{
stage('stage1'){
//do something
}
try{
stage('stage2'){
//do something
}
}catch(Exception err1){
error "Error Occurred"
currentBuild.result='Failure'
}

}catch(Exception ex){
// Do something if stage 1 fails 
}

如果阶段 2 失败,它不应该跳到阶段 1 的 catch 语句。有人可以建议我一个实现这一目标的好方法吗?

这也应该回答你的问题。

设置currentBuild.result = 'Failure'后的单次退货应该适合您。小心,返回是在阶段之外,否则它将退出阶段。

最新更新