首页 > 其他 > 详细

在jenkins中处理外部命令的异常

时间:2019-04-12 19:41:35      阅读:218      评论:0      收藏:0      [点我收藏+]

powershell中有自己的异常捕获机制,但是在jenkins中处理第三方工具抛出的异常时,一直抓不到,疑惑了很久,本篇内容主要描述此次过程及解决方案。


powershell可以处理外部异常

try
{
    .\7z.exe -tzip abx a.zip bcd  #dcd不存在,此命令执行必定失败
}
catch [System.Exception]
{
    echo "异常捕获成功"
}

 执行结果:

技术分享图片

将powershell代码移植到jenkins中,构建后查看结果:

技术分享图片

结果:

技术分享图片

 

【猜测】:可能是第三方工具7z命令重新启动了一个进程,而jenkins没有能捕获到这个异常。

换个思路:

7z执行后会返回退出码,我们可以利用退出码来判断7z是否执行成功。

技术分享图片

根据上图可知,当退出码是0时,表示执行成功!

在powershell中如何获取返回码呢?

echo $LASTEXITCODE

在powershell中测试成功和失败的退出码:

技术分享图片

技术分享图片

将此方法应用到jenkins中

技术分享图片

结果:

技术分享图片

若需要隐藏输出结果,使用“2>&1”即可将正确错误的输出信息输入到某个文件中。

 技术分享图片

 技术分享图片

 7z正常执行:

技术分享图片

技术分享图片

在jenkins中处理外部命令的异常

原文:https://www.cnblogs.com/zqj-blog/p/10697886.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!