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

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


powershell能够处理外部异常shell

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

 执行结果:工具

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

结果:3d

 

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

换个思路:进程

7z执行后会返回退出码,咱们能够利用退出码来判断7z是否执行成功。ip

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

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

echo $LASTEXITCODE

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

将此方法应用到jenkins中

结果:

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

 

 

 7z正常执行:

相关文章
相关标签/搜索