Try/Catch 在 powershell 运行 sql 脚本中
Try/Catch in powershell running sql script
我是 powershell 的新手,正在尝试使用 try/catch 命令来处理错误消息。
$Output = Invoke-SqlCmd -ServerInstance $dbinstance -username $dbusername -password $dbpassword -Database $dbname -Query $Query
$isconnected = ''
if ($Output.uri -eq '0' ) {
$isconnected = $true
Write-Host -Foreground Green $isconnected
}else {
$isconnected = $false
Write-Host -Foreground Red $isconnected
}
这是我得到的错误,但结果仍然正确,即使结果应该是错误的,因为我正在尝试找出如何捕获错误。
如果你想在你的脚本中实现一个 Try
/ Catch
你需要将你的代码放在 Try
块中查询数据库以及你想如何处理 Catch
块:
try {
$param = @{
ServerInstance = $dbinstance
Username = $dbusername
Password = $dbpassword
Database = $dbname
Query = $Query
}
$output = Invoke-SqlCmd @param -ErrorAction Stop
Write-Host 'Connected' -Foreground Green
# rest of your code goes here
}
catch {
Write-Warning $_.Exception.Message
}
您可能还会受益于 Splatting。
$_
在 Catch
块的上下文中表示捕获的错误,它是 ErrorRecord
. You might want to check the other properties aside from Exception
.
的一个实例
我是 powershell 的新手,正在尝试使用 try/catch 命令来处理错误消息。
$Output = Invoke-SqlCmd -ServerInstance $dbinstance -username $dbusername -password $dbpassword -Database $dbname -Query $Query
$isconnected = ''
if ($Output.uri -eq '0' ) {
$isconnected = $true
Write-Host -Foreground Green $isconnected
}else {
$isconnected = $false
Write-Host -Foreground Red $isconnected
}
这是我得到的错误,但结果仍然正确,即使结果应该是错误的,因为我正在尝试找出如何捕获错误。
如果你想在你的脚本中实现一个 Try
/ Catch
你需要将你的代码放在 Try
块中查询数据库以及你想如何处理 Catch
块:
try {
$param = @{
ServerInstance = $dbinstance
Username = $dbusername
Password = $dbpassword
Database = $dbname
Query = $Query
}
$output = Invoke-SqlCmd @param -ErrorAction Stop
Write-Host 'Connected' -Foreground Green
# rest of your code goes here
}
catch {
Write-Warning $_.Exception.Message
}
您可能还会受益于 Splatting。
$_
在 Catch
块的上下文中表示捕获的错误,它是 ErrorRecord
. You might want to check the other properties aside from Exception
.