1
我正在使用电源外壳控制台下面的电源外壳脚本:PowerShell的非终止错误,并尝试catch块
$ob1 = "nonexistingclass"
$a = new-object $ob1
Write-Output "Created new object"
Write-Output "End"
此打印错误。然后继续并打印“创建新对象”和“结束”。所以我认为这是一个非终止错误。
但如果我把尝试围绕新对象catch块如下:
$ob1 = "nonexistingclass"
try
{
$a = new-object $ob1
Write-Output "Created new object"
}
catch
{
Write-Error "Exception Message: $($_.Exception.Message)"
}
Write-Output "End"
在这种情况下,catch块被击中,并将其写入异常消息。
我的问题是:
- 这是一个非终止错误?它看起来像一个非终止 错误,因为执行错误后继续执行(当没有 尝试catch块)。
- 如果这是非终止错误为什么catch块被击中时 我添加try catch块?我的理解是catch块将被执行仅仅用于终止错误 。
- 即使我在第一个示例中使用-ErrorAction Stop调用新对象(不尝试 catch块),它仍然继续执行 并打印最后2行。当我使用-ErrorAction stop时,我 期望它应该抛出一个终止异常并且应该停止脚本执行。我的理解错了吗?