【发布时间】:2018-03-07 18:04:51
【问题描述】:
我正在尝试检测数据库连接是否成功,如果成功,则工作,否则,报告连接错误并明显绕过数据库任务。
我很尴尬,我似乎没有通过语法 101。
我尝试了两种不同的方法,但都不起作用。
方法 1
在这段代码中,我似乎无法让 $connection.State = Open 语法正确。我可以在调试器中看到 $connection.State = Open - 我似乎无法正确测试它。
$connection = New-Object Oracle.ManagedDataAccess.Client.OracleConnection($conninfo)
Try {$connection.open()}
Catch {Write-Warning "Sorry, DB Connect failed"}
If ($connection.State = Open) {
Write-Output "No Error"
DoWork()
$connection.Close()
}
方法2:
在这段代码中,连接错误被捕获,但成功的连接不会进入期望的“无错误块”。
$connection = New-Object Oracle.ManagedDataAccess.Client.OracleConnection($conninfo)
Try {$connection.open()}
Catch {Write-Warning "Sorry, DB Connect failed"}
If (!$error) {
Write-Output "No Error"
DoWork()
$connection.Close()
}
}
【问题讨论】:
-
尝试使用
$?而不是!$error。$?如果最后一个命令成功则返回 true,如果有错误则返回 false。 -
@TheMadTechnician 连接失败错误地落入无错误分支。
标签: powershell error-handling database-connection