遮蔽 捕獲並輸出錯誤

2022-06-15 08:06:15 字數 2690 閱讀 4240

erroraction 只能遮蔽非終止性錯誤,可用引數值如下:(有關詳細資訊,鍵入「get-help about_commonparameters」)。

引數值:

stop: 顯示錯誤訊息並停止執行。

inquire: 顯示錯誤訊息,並詢問您是否要繼續。

continue: 顯示錯誤訊息並繼續執行。

silentlycontinue: 無效果。不顯示錯誤訊息,執行繼續而無中斷。(預設)

$erroractionpreference 和 erroraction 通用引數都不會影響 windows

示例:

gwmi win32_operatingsystem -computername 192.168.9.2 -credential $cred

#如果連線不到計算機則會報錯

gwmi win32_operatingsystem -computername 192.168.9.2 -credential $cred -erroraction silentlycontinue #

如果連線不到計算機則不會出現報錯資訊

$process = get-process

"asdfasd

" -erroraction silentlycontinue

#使用 $? 判斷是否正確

#

從這裡開始隱藏所有的錯誤資訊

$erroractionpreference="

silentlycontinue

"stop-process -name "

abc"

#恢復$erroractionpreference,錯誤開始輸出

$erroractionpreference="

continue

"

遮蔽終止性錯誤:try{} catch {}如下**為 零除 錯誤,直接執行將會返回錯誤:

write-host "

script begin

"[int]

"not a number

"$denominator = 0

$result = 50 / $denominator

write-host "

script end

"使用try{} catch {}則會遮蔽其錯誤,沒有輸出:

trycatch

{}

捕獲終止錯誤並輸出:

try 

catch

檢測到語法錯誤,會終止**的執行,其錯誤會**獲,但是 write-host "adf"並不會被繼續執行。

結果:

捕獲並輸出非終止錯誤

有時候會需要捕獲非終止錯誤,比如 remove-item d:\adfasdf.txt 刪除乙個不存在的檔案:

try 

catch

結果其錯誤並未**獲,因為其是乙個非終止錯誤,錯誤級別較低:

可以將其改為終止錯誤,如下:

try 

catch

結果變成了終止錯誤,並**獲:

可以使用如下方法捕獲並輸出非終止錯誤:

remove-item d:\adfasdf.txt 2>d:\za.txt 或者

remove-item d:\adfasdf.txt 2>>d:\za.txt (追加到文字)

自定義錯誤,使用 trap:

trap

remove-item "

books

" -ea stop

結果:

還有一些錯誤是 erroraction和try{} catch {}都無法遮蔽的,如下:

net use \\192.168.9.2 2299 /user:administrator ,如果連線不到目標計算機,則會出現錯誤 「發生系統錯誤 53.找不到網路路徑」。

可以使用 「>nul 2>nul」 遮蔽其錯誤資訊,然後依然可以繼續使用 $lastexitcode 或者 %errorlevel% 得到返回值

cmd /c " net use \\192.168.9.2 2genedna9 /user:administrator>nul 2>nul"

解釋:>nul 或者 1>nul 作用是遮蔽成功執行命令的輸出內容

2>nul 作用是遮蔽命令執行失敗的輸出內容

1>nul 2>nul 作用是遮蔽的所有輸出提示 [不論正確與否]

ResponseBody輸出錯誤

錯誤日誌 getoutputstream has already been called for this response 使用了註解 responsebody進行資料輸出 結果就報錯.可能原因 model中存在一對多 和 多對一的關聯關係 在輸出時候產生錯誤 解決方法 在model的配置中新增如...

linux標準輸入輸出錯誤輸出

linux shell 環境中支援輸入輸出重定向,用符號 和 來表示。0 1和2分別表示標準輸入 標準輸出和標準錯誤資訊輸出,可以用來指定需要重定向的標準輸入或輸出,比如 2 a.txt 表示將錯誤資訊輸出到檔案a.txt中。同時,還可以在這三個標準輸入輸出之間實現重定向,比如將錯誤資訊重定向到標準...

python打字輸出錯誤 為什麼我打字出錯?

我用這個程式的目標是記錄4條資訊 員工編號 員工姓名 班次號和小時工資率 然後顯示它們。我需要在這個程式中使用類。在 這是班級 class employee object def init self,name,number self.name name self.number number def ...