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

Zobacz też