在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正常執行:

相關文章
相關標籤/搜索