Кажется, я не могу отловить исключение, выданное 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
установлен на Стоп, так что это не должно бытьпроблема.
Когда я изменяю свой код на catch [Exception]
, исключение перехватывается и печатается "получено".
start-service
выдает ServiceCommandException
или что-то еще?Это выглядит так, как будто это так, но я не могу его поймать!
--- Edit ---
В идеале я мог бы написать следующее и выдать исключение, если 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"
}