Groovy声明式流水线中如何抑制抛出异常的堆栈追踪输出?
Jenkins流水线抑制异常堆栈输出方案
方法1:使用Jenkins内置error指令(最推荐)
Jenkins Pipeline原生提供的error指令专门用于终止当前执行并抛出错误,默认仅输出你传入的自定义提示内容,不会打印完整异常堆栈,同时可以正常触发你配置的retry重试逻辑。
修改后的代码示例如下:
if (isValid == 1) { println("Erroring out due to invalid change ticket") error("Please rerun the job and enter a valid change ticket") } else { println("CHG ticket is valid") }
方法2:抛出hudson.AbortException类型异常
如果你的场景必须使用抛出异常的写法,不要抛出通用的Exception,改用Jenkins专属的任务终止异常类hudson.AbortException,该异常会被Jenkins特殊处理,仅输出自定义的错误消息,不会打印冗长堆栈。
修改后的代码示例如下:
// 若流水线运行在沙箱模式下,需要先在Jenkins脚本安全管理中批准该类的使用权限 if (isValid == 1) { println("Erroring out due to invalid change ticket") throw new hudson.AbortException("Please rerun the job and enter a valid change ticket") } else { println("CHG ticket is valid") }
以上两种方案都不会影响你原有配置的retry重试逻辑,stage会按设置正常自动重启,控制台仅会展示你自定义的错误提示。
内容的提问来源于stack exchange,提问作者stillmaticone17
相关产品推荐
相关产品推荐

