我有一些带有初始化步骤的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/