about_Throw
Krótki opis
throw
Opisuje słowo kluczowe, które generuje błąd zakończenia.
Długi opis
Słowo throw
kluczowe powoduje błąd zakończenia. Możesz użyć throw
słowa kluczowego , aby zatrzymać przetwarzanie polecenia, funkcji lub skryptu.
Można na przykład użyć throw
słowa kluczowego w bloku skryptu instrukcjiif
, aby odpowiedzieć na warunek lub w catch
bloku instrukcji-try
catch
-finally
.
Słowo throw
kluczowe może zgłaszać dowolny obiekt, taki jak ciąg komunikatu użytkownika lub obiekt, który spowodował błąd.
Składnia
Składnia słowa kluczowego throw
jest następująca:
throw [<expression>]
Wyrażenie w throw
składni jest opcjonalne. throw
Gdy instrukcja nie jest wyświetlana w catch
bloku i nie zawiera wyrażenia, generuje błąd ScriptHalted.
throw
Exception: ScriptHalted
throw
Jeśli słowo kluczowe jest używane w catch
bloku bez wyrażenia, ponownie zgłasza bieżący wyjątek RuntimeException. Aby uzyskać więcej informacji, zobacz about_Try_Catch_Finally.
Zgłaszanie ciągu
Opcjonalne wyrażenie w instrukcji throw
może być ciągiem, jak pokazano w poniższym przykładzie:
throw "This is an error."
Exception: This is an error.
Zgłaszanie innych obiektów
Wyrażenie może być również obiektem, który zgłasza obiekt reprezentujący proces programu PowerShell, jak pokazano w poniższym przykładzie:
throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)
Aby sprawdzić błąd, możesz użyć właściwości TargetObject obiektu ErrorRecord w zmiennej $Error
automatycznej.
$Error[0].TargetObject
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
125 174.44 229.57 23.61 1548 2 pwsh
63 44.07 81.95 1.75 1732 2 pwsh
63 43.32 77.65 1.48 9092 2 pwsh
Można również throw
utworzyć obiekt ErrorRecord lub wyjątek platformy .NET. W poniższym przykładzie użyto słowa kluczowego throw
, aby zgłosić obiekt System.FormatException .
$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.
Wynikowy błąd
Słowo throw
kluczowe może wygenerować obiekt ErrorRecord . Właściwość Exception obiektu ErrorRecord zawiera obiekt RuntimeException .
Pozostała część obiektu ErrorRecord i obiektu RuntimeException różni się w zależności od zgłaszanego obiektu.
Obiekt throw
jest owinięty w obiekt ErrorRecord, a obiekt ErrorRecord jest automatycznie zapisywany w zmiennej automatycznej $Error
.
Używanie throw
polecenia w celu utworzenia parametru obowiązkowego
W przeciwieństwie do poprzednich wersji programu PowerShell, nie używaj słowa kluczowego throw
do sprawdzania poprawności parametrów. Zobacz about_Functions_Advanced_Parameters , aby uzyskać prawidłowy sposób.