Створення та викидання нового винятку


130

Як я можу створити та викинути новий виняток у PowerShell?

Я хочу робити різні речі для конкретної помилки.


2
Ви хочете викинути спеціальний виняток? Чи допомагає [це] [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 "Error trying to do a task"

Використовуючи всередині улову, ви можете надати додаткову інформацію про те, що спричинило помилку


У C ++ не рекомендується кидати рядки, оскільки вони не є ієрархією винятків. Це просто працює, як у Powershell, але, можливо, вони не найкращий шлях?
Рауль Салінас-Монтеагудо

3
Якщо ви використовуєте try..catches у своєму скрипті і у вас є кілька заяв на вилов, які викликають конкретні винятки, то, звичайно, ви хочете вказати тип винятку. Я не впевнений, чому робиться посилання на C ++. У сценаріях Powershell заява про кидок, як правило, призначена для виходу із сценарію з описовим повідомленням. Я не хочу викликати дискусії, але Powershell і C ++ - це надзвичайно різні тварини. Застосування найкращих практик C ++ або C # до Powershell слід гартувати, оскільки сценарії тісніше пов'язані з функціональним програмуванням.
WiiBopp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.