powershell中有自己的異常捕獲機制,但是在jenkins中處理第三方工具丟擲的異常時,一直抓不到,疑惑了很久,本篇內容主要描述此次過程及解決方案。
powershell可以處理外部異常
try執行結果:catch [system.exception]
將powershell**移植到jenkins中,構建後檢視結果:
結果:
【猜測】:可能是第三方工具7z命令重新啟動了乙個程序,而jenkins沒有能捕獲到這個異常。
換個思路:
7z執行後會返回退出碼,我們可以利用退出碼來判斷7z是否執行成功。
根據上圖可知,當退出碼是0時,表示執行成功!
在powershell中如何獲取返回碼呢?
echo $lastexitcode在powershell中測試成功和失敗的退出碼:
將此方法應用到jenkins中
結果:
若需要隱藏輸出結果,使用「2>&1」即可將正確錯誤的輸出資訊輸入到某個檔案中。
7z正常執行:
在PHP中執行系統外部命令
php作為一種伺服器端的指令碼語言,象編寫簡單,或者是複雜的動態網頁這樣的任務,它完全能夠勝任。但事情不總是如此,有時為了實現某個功能,必須借助於作業系統的外部程式 或者稱之為命令 這樣可以做到事半功倍。那麼,是否可以在php指令碼中呼叫外部命令呢?如果能,如何去做呢?有些什麼方面的顧慮呢?相信你看...
在PHP中執行系統外部命令
php作為一種伺服器端的指令碼語言,象編寫簡單,或者是複雜的動態網頁這樣的任務,它完全能夠勝任。但事情不總是如此,有時為了實現某個功能,必須借助於作業系統的外部程式 或者稱之為命令 這樣可以做到事半功倍。那麼,是否可以在php指令碼中呼叫外部命令呢?如果能,如何去做呢?有些什麼方面的顧慮呢?相信你看...
在PHP中執行系統外部命令
php作為一種伺服器端的指令碼語言,象編寫簡單,或者是複雜的動態網頁這樣的任務,它完全能夠勝任。但事情不總是如此,有時為了實現某個功能,必須借助於作業系統的外部程式 或者稱之為命令 這樣可以做到事半功倍。那麼,是否可以在php指令碼中呼叫外部命令呢?如果能,如何去做呢?有些什麼方面的顧慮呢?相信你看...