Tworzenie i wrzucanie nowego wyjątku

Odpowiedzi:

200

Aby wywołać określony wyjątek, taki jak FileNotFoundException, użyj tego formatu

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

Aby zgłosić wyjątek ogólny, użyj polecenia throw, po którym następuje ciąg.

throw "Error trying to do a task"

W przypadku użycia wewnątrz haczyka można podać dodatkowe informacje o tym, co spowodowało błąd

WiiBopp
źródło
W C ++ odradza się rzucanie ciągów, ponieważ nie znajdują się one w hierarchii wyjątków. Po prostu działa, jak w Powershell, ale może nie jest to najlepszy sposób?
Raúl Salinas-Monteagudo
4
Jeśli używasz try..catches w swoim skrypcie i masz wiele instrukcji catch wywołujących określone wyjątki, to oczywiście chciałbyś określić typ wyjątku. Nie jestem pewien, dlaczego odwołuje się do C ++. W skryptach Powershell, instrukcja throw jest najczęściej przeznaczona do wyjścia ze skryptu za pomocą opisowej wiadomości. Nie chcę wywoływać debaty, ale Powershell i C ++ to skrajnie różne zwierzęta. Stosowanie najlepszych praktyk C ++ lub C # do programu PowerShell powinno być ograniczone, ponieważ skrypty są ściślej związane z programowaniem funkcjonalnym.
WiiBopp