Создание и выброс нового исключения

130

Как я могу создать и выбросить новое исключение в PowerShell?

Я хочу делать разные вещи для конкретной ошибки.

user369182
источник
2
Вы хотите создать собственное исключение? [This] [1] помогает? [1]: stackoverflow.com/questions/11703180/…
bala_88
1
Взгляните на этот пост: stackoverflow.com/questions/2182666/…
Андрей Марчук

Ответы:

194

Чтобы вызвать конкретное исключение, такое как FileNotFoundException, используйте этот формат

if (-not (Test-Path $file)) 
{
    throw [System.IO.FileNotFoundException] "$file not found."
}

Чтобы вызвать общее исключение, используйте команду throw, за которой следует строка.

throw "Error trying to do a task"

При использовании внутри улова вы можете предоставить дополнительную информацию о том, что вызвало ошибку.

WiiBopp
источник
В C ++ не рекомендуется создавать строки, поскольку они не входят в иерархию исключений. Он просто работает, как в Powershell, но, может быть, это не лучший вариант?
Рауль Салинас-Монтеагудо
3
Если вы используете try..catches в своем скрипте и у вас есть несколько операторов catch, вызывающих определенные исключения, тогда, конечно, вы захотите указать тип исключения. Я не уверен, почему сделана ссылка на C ++. В сценариях Powershell инструкция throw обычно предназначена для выхода из сценария с описательным сообщением. Я не собираюсь спорить, но Powershell и C ++ - совершенно разные животные. Применение передовых методов C ++ или C # к Powershell должно быть умеренным, поскольку создание сценариев более тесно связано с функциональным программированием.
WiiBopp