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. Słowo kluczowe umożliwia throw
zatrzymanie przetwarzania 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 zwróconego obiektu.
Obiekt throw
jest opakowany w obiekt ErrorRecord , a obiekt ErrorRecord jest automatycznie zapisywany w zmiennej automatycznej $Error
.
Używanie throw
polecenia w celu utworzenia obowiązkowego parametru
W przeciwieństwie do poprzednich wersji programu PowerShell, nie używaj słowa kluczowego throw
do sprawdzania poprawności parametrów. Aby uzyskać właściwy sposób, zobacz about_Functions_Advanced_Parameters .