非终止错误是一种来自命令内部的错误。许多发生在命令内部的错误就不是终止错误。
你不能用错误机制去捕获这种错误。所以虽然下面例子使用了一个错误捕捉器,但它不能捕获命令内部错误:
try { Get-WmiObject -Class Win32_BIOS -ComputerName offlineIamafraid } catch { Write-Warning "Oops, error: $_" }
要捕获这种非终止的错误,你必须将他们转变成终止错误。这里可以设置ErrorAction为”Stop”.
try { Get-WmiObject -Class Win32_BIOS -ComputerName offlineIamafraid -ErrorAction Stop } catch { Write-Warning "Oops, error: $_" }
如果你不想让每条命令都加上” -ErrorAction Stop”参数,你可以临时设置$ErrorActionPreference为”Stop”。如果你代码中不需要明确的指定“-ErrorAction”设置就可以使用这种特定方法。
原文地址: Catching Non-Terminating Errors
本文链接: https://www.pstips.net/catching-non-terminating-errors.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!