gpt4 book ai didi

powershell - $Error 变量是 $Null 但 $_ 在 Catch 中包含错误

转载 作者:行者123 更新时间:2023-12-04 12:54:21 25 4
gpt4 key购买 nike

我有 PS 模块,其中包含许多用于各个功能的脚本。还有一个“库”脚本,其中包含许多由模块中使用的函数调用的辅助函数。

让我们调用外部函数 ReadWeb , 它使用辅助函数 ParseXML .

本周我在内部助手 ParseXML 中遇到了一个错误处理问题。功能。该函数包含一个 try/catch,在 catch 我询问:
$Error[0].Exception.InnerException.Message
...为了将错误作为变量传递回外部范围并确定是否 ParseXML工作。

对于特定情况,当我调用 ReadWeb 时遇到索引错误。 .根本原因原来是 $Error Catch 中的对象阻止 ParseXML回来了$Null .

我更改了错误处理以检查 $Error -eq $Null如果是,请使用 $_Catch以确定错误消息是什么。

我的问题是:什么会导致$Error成为 $null里面Catch ?

最佳答案

$error是由 Powershell 处理的自动变量:about_Try_Catch_Finally 中长描述的第 3 节.

它被视为 Catch block 的上下文,因此可用作 $_ .
由于 Catch block 与 Try block 不同,$error自动变量被重置并赋值 $null .

关于powershell - $Error 变量是 $Null 但 $_ 在 Catch 中包含错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20521935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com