Azure功能应用程序 - PowerShell的ErrorActionPreference

时间:2017-02-02 17:34:31

标签: powershell azure azure-functions

默认情况下,环境的$ ErrorActionPreference设置为“继续”。当cmdlet抛出错误时,脚本将继续。

我想要'停止'并抓住我的try-catch块。在我的脚本中,我能够设置:

$ErrorActionPreference = "Stop"

如果我将值打印到屏幕上,我可以看到它现在设置为“停止”而不是“继续”。但是,当我的cmdlet抛出错误时,它仍然继续。它忽略了我的错误操作首选项,并根据默认值进行操作。

任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:3)

所以,我不确定你在做什么,但对我来说它运作正常:

Write-Output "PowerShell Timer trigger function executed at:$(get-date)";

try {
    Get-Process 'hh' -erroraction stop
}
catch{
    Write-Output "caught"
    exit
}

Write-Output "never reached"

或者像这样:

Write-Output "PowerShell Timer trigger function executed at:$(get-date)";
$global:erroractionpreference = 1
try {
    Get-Process 'hh'
}
catch{
    Write-Output "caught"
    exit
}

Write-Output "i do not work"

两者都打印相同(时间戳,ofc除外):

  

2017-02-02T19:56:35.916执行PowerShell定时器触发功能   时间:02/02/2017 19:56:35

     

2017-02-02T19:56:35.933抓住了

     

2017-02-02T19:56:35.933功能完成(成功,   ID = 6097f1bf-06e1-4a1d-ba27-392607d9b33c)