Кажется, мне не удается поймать исключение, выданное Start-Service
. Вот мой код:
try
{
start-service "SomeUnStartableService"
}
catch [Microsoft.PowerShell.Commands.ServiceCommandException]
{
write-host "got here"
}
Когда я запускаю это, исключение выдается, но не перехватывается:
*Service 'SomeUnStartableService' start failed.
At line:3 char:18
+ start-service <<<< "SomeUnStartableService"
+ CategoryInfo : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service], ServiceCommandException
+ FullyQualifiedErrorId : StartServiceFailed,Microsoft.PowerShell.Commands.StartServiceCommand*
$ ErrorActionPreference
установлен на Stop, поэтому это не должно быть проблемой.
Когда я изменяю свой код для catch [Exception]
, исключение перехватывается и печатается "got here".
Выдает ли start-service
исключение ServiceCommandException
или что-то еще ? Похоже, что это так, но я не могу его уловить!
--- Изменить ---
В идеале я мог бы написать следующее и выдать исключение, если start-service
не сгенерировал ошибку исключение и перехватить только исключение, выданное start-service
:
try
{
start-service "SomeUnStartableService"
throw (new-object Exception("service started when expected not to start"))
}
catch [Microsoft.PowerShell.Commands.ServiceCommandException]
{
write-host "got here"
}