【发布时间】:2019-08-09 06:33:12
【问题描述】:
我在一个函数中调用了很多 REST 调用。 我知道其中一些会失败,但这是意料之中的。
我的问题是:
如何防止 powershell 向全局 $error 变量添加条目?
foreach:
$oldErrorActionPreference = $ErrorActionPreference
$ErrorActionPreference = "Ignore"
try {
$response = Invoke-RestMethod -Uri $Uri -ea Ignore
} catch {
Write-Verbose "$_"
} finally {
$ErrorActionPreference = $oldErrorActionPreference
}
$error 调用后的变量:
【问题讨论】:
-
$Error不存储在 Powershell 会话中发生的所有错误吗?用户$error[0]查看最新的错误会更安全,然后根据需要慢慢向上移动数组。 -
你为什么想要?您要解决的问题是什么?
-
@AnsgarWiechers 我正在创建一组核心模块,它们本身必须不泄露给 $global:error。
-
异常是“预期的” - 因此不是错误。我不喜欢我的代码“接受”的异常状态仍然泄漏到 global:error。这会创建一个重载的 $error,然后再不能用于跟踪和查找真正的“错误”
标签: powershell powershell-5.0 powershell-7.0 powershell-6.0