捕获PowerShell非终止的错误


非终止错误是一种来自命令内部的错误。许多发生在命令内部的错误就不是终止错误。

你不能用错误机制去捕获这种错误。所以虽然下面例子使用了一个错误捕捉器,但它不能捕获命令内部错误:

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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

发表评论

邮箱地址不会被公开。 必填项已用*标注