Вот код:
Try{
$connection = Test-Connection -BufferSize 32 -Count 1 -ErrorAction Stop -ComputerName "test"
return $connection.StatusCode.ToString()
}
Catch [System.Net.NetworkInformation.PingException]{
return "Ping Exception"
}
Catch [Exception]{
return "Unexpected exception"
}
Теперь давайте рассмотрим случай, когда -ComputerName
не будет найден, это вернет мне System.Net.NetworkInformation.PingException
.Но в приведенном выше коде результат будет Unexpected exception
.
. Ссылаясь на этот ответ, я должен использовать System.Management.Automation.ActionPreferenceStopException
, чтобы поймать его.
Теперь мой вопрос: как мне перехватить последнее внутреннее исключение при использовании флага -ErrorAction Stop
.Должен ли я просто бросить PingException
?Это не очень хорошая идея, так как я не могу быть уверен, что PinException
действительно является причиной триггера ErrorAction
.