在jenkins中處理外部命令7z的異常


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM