#PSTip Ignorowanie błędów

Uwaga: Ta wskazówka wymaga PowerShella 3.0 lub nowszego.

PowerShell pozwala kontrolować sposób reagowania na błąd nie kończący działania (błąd, który nie zatrzymuje przetwarzania cmdleta) globalnie za pomocą zmiennej preferencji $ErrorActionPreference lub na poziomie cmdleta za pomocą parametru -ErrorAction. Oba sposoby obsługują następujące wartości:

Stop: Wyświetla komunikat o błędzie i zatrzymuje wykonywanie.
Inquire: Wyświetla komunikat o błędzie i pyta, czy chcesz kontynuować.
Continue: Wyświetla komunikat o błędzie i kontynuuje (Domyślnie) wykonywanie.
SilentlyContinue: Bez efektu. Komunikat o błędzie nie jest wyświetlany, a wykonywanie jest kontynuowane bez przerw.

Niezależnie od wybranej wartości, błąd jest zapisywany do hosta i dodawany do zmiennej $error. Począwszy od PowerShell 3.0, tylko na poziomie komendy (np. ErrorAction), mamy dodatkową wartość: Ignoruj. Gdy podana jest wartość Ignoruj, błąd nie jest ani wyświetlany, ani dodawany do zmiennej $error.

# check the error countPS> $error.Count0# use SilentlyContinue to ignore the errorPS> Get-ChildItem NoSuchFile -ErrorAction SilentlyContinue# error is ignored but is added to the $error variablePS> $error.Count1PS> $error.Clear()# Using Ignore truly discards the error and the error is not added to $error variablePS> Get-ChildItem NoSuchFile -ErrorAction IgnorePS> $error.Count0