我有一些带有初始化步骤的PowerShell脚本,在这些脚本的末尾放置了trap{}语句,目的是捕获此后所有未处理的错误。

出乎意料的是,我意识到,当我在初始化逻辑中出现问题时,即使在定义trap{}之前发生了错误,也会调用trap{}

一个简单的例子:

Write-Host "Hello"
Write-Out "World"  # Incorrect cmdlet name causes an error

trap{
  Write-Warning "Ouch"
  return $null
}

给出:
Hello
WARNING: Ouch

显然,在错误的代码行之后定义trap{}似乎无关紧要,但是有人可以解释为什么这仍然有效吗?

最佳答案

about_Trap:



如果您想进一步控制要捕获其异常的代码,则可以考虑使用 try / catch / finally

关于powershell - 我在PowerShell脚本中放置陷阱{}的位置是否重要,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38773887/

10-16 12:13