我有以下代码...
当找不到资源时,会引发错误,但代码继续运行...不知道为什么?
try{
$state=$(az synapse sql pool show --name $DB_NAME --resource-group $RG_NAME --workspace-name $WKSPC_NAME --query "status")
Write-Host("State = $state")
if($state -match "Paused")
{
Write-Host("Resume Pool xxx")
az synapse sql pool resume --name $DB_NAME --resource-group $RG_NAME --workspace-name $WKSPC_NAME
az synapse sql pool wait --sql-pool-name $DB_NAME --resource-group $RG_NAME --workspace-name $WKSPC_NAME --custom "state==Online"
};
}
catch
{
Write-Host("Handle error - no need to do anything....")
}
A
try-catch
块仅捕获终止错误。非终止错误(如本例中 az
命令引发的错误)不会被捕获,也不会停止脚本的执行。使用 $ErrorActionPreference
变量并在脚本开头设置为 $ErrorActionPreference = "Stop"
。
$ErrorActionPreference = "Stop"
try {
$state=$(az synapse sql pool show --name $DB_NAME --resource-group $RG_NAME --workspace-name $WKSPC_NAME --query "status")
Write-Host("State = $state")
if($state -match "Paused") {
Write-Host("Resume Pool xxx")
az synapse sql pool resume --name $DB_NAME --resource-group $RG_NAME --workspace-name $WKSPC_NAME
az synapse sql pool wait --sql-pool-name $DB_NAME --resource-group $RG_NAME --workspace-name $WKSPC_NAME --custom "state==Online"
}
}
catch {
Write-Host("Handle error - no need to do anything....")
}