Udostępnij za pośrednictwem


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-trycatch-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 .

Zobacz też