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
ScriptHalted
At line:1 char:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : 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."
This is an error.
At line:1 char:6
+ throw <<<< "This is an error."
+ CategoryInfo : OperationStopped: (This is an error.:String) [], R
untimeException
+ FullyQualifiedErrorId : 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)
At line:1 char:6
+ throw <<<< (get-process PowerShell)
+ CategoryInfo : OperationStopped: (System.Diagnostics.Process (Pow
erShell):Process) [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (PowerShell)
Aby sprawdzić błąd, możesz użyć właściwości TargetObject obiektu ErrorRecord w zmiennej $Error
automatycznej.
$Error[0].TargetObject
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
319 26 61016 70864 568 3.28 5548 PowerShell
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
One of the identified items was in an invalid format.
At line:1 char:6
+ throw <<<< $formatError
+ CategoryInfo : OperationStopped: (:) [], FormatException
+ FullyQualifiedErrorId : 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 .