Почему $ error [0] .tostring (). Содержит не работает должным образом? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть следующий оператор try-catch для обработки таблицы / измерения БД.По какой-то причине, если я отключаю службу (MSSQLSERVER) на сервере, первый оператор if для захвата исключения,

Убедитесь, что сервер работает

никогда не трогается и вместо этого он переходит ко второму условию условия и записывает на хост

Ошибка обработки измерения: не удается установить соединение.Убедитесь, что сервер работает.

        try {
                Invoke-ProcessTable -DatabaseName "$DB" -Server "$server" -RefreshType "Full" -TableName "sometable" > $null

                write-host "Processing completed!"
        }
        catch{
                if($error[0].tostring().contains("Ensure that the server is running"))
                {
                    write-host "`r`nProcessing failed!`r`n(MSSQLSERVER) service is not running on $server!"
                    #$exit = 1
                }
                elseif ($error[0])
                {
                    Write-Host "Error Processing dimension: $($error[0])"
                }
        }

Сообщение об исключении, если служба не работает на сервере, выглядит следующим образом:

Невозможно установить соединение.Убедитесь, что сервер работает.

, поэтому, что не так с $error[0].tostring().contains("Ensure that the server is running")

, должно выводиться следующее:

Обработка не удалась! (MSSQLSERVER) служба не работает на сервере!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...