我正在使用嵌套的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'
后的单次退货应该适合您。小心,返回是在阶段之外,否则它将退出阶段。