Freigeben über


about_Throw

Kurze Beschreibung

Beschreibt das throw Schlüsselwort, das einen Beendigungsfehler generiert.

Lange Beschreibung

Das throw Schlüsselwort verursacht einen Beendigungsfehler. Sie können das throw Schlüsselwort verwenden, um die Verarbeitung eines Befehls, einer Funktion oder eines Skripts zu beenden.

Sie können z. B. das throw Schlüsselwort im Skriptblock einer if Anweisung verwenden, um auf eine Bedingung oder im catch Block einerfinally try-catch-Anweisung zu reagieren.

Das throw Schlüsselwort kann jedes Objekt auslösen, z. B. eine Benutzernachrichtenzeichenfolge oder das Objekt, das den Fehler verursacht hat.

Syntax

Die Syntax des throw Schlüsselworts lautet wie folgt:

throw [<expression>]

Der Ausdruck in der throw Syntax ist optional. Wenn die throw Anweisung nicht in einem catch Block angezeigt wird und kein Ausdruck enthält, wird ein ScriptHalted-Fehler generiert .

throw
Exception: ScriptHalted

Wenn das throw Schlüsselwort in einem catch Block ohne Ausdruck verwendet wird, löst es die aktuelle RuntimeException erneut aus. Weitere Informationen finden Sie unter about_Try_Catch_Finally.

Auslösen einer Zeichenfolge

Der optionale Ausdruck in einer throw Anweisung kann eine Zeichenfolge sein, wie im folgenden Beispiel gezeigt:

throw "This is an error."
Exception: This is an error.

Auslösen anderer Objekte

Der Ausdruck kann auch ein Objekt sein, das das Objekt auslöst, das den PowerShell-Prozess darstellt, wie im folgenden Beispiel gezeigt:

throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)

Sie können die TargetObject-Eigenschaft des ErrorRecord-Objekts in der $Error automatischen Variablen verwenden, um den Fehler zu untersuchen.

$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

Sie können auch throw ein ErrorRecord-Objekt oder eine .NET-Ausnahme verwenden. Im folgenden Beispiel wird das throw Schlüsselwort verwendet, um ein System.FormatException -Objekt auszuwerfen.

$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.

Der resultierende Fehler

Das throw Schlüsselwort kann ein ErrorRecord-Objekt generieren. Die Exception-Eigenschaft des ErrorRecord -Objekts enthält ein RuntimeException -Objekt. Der Rest des ErrorRecord-Objekts und des RuntimeException-Objekts variiert je nach ausgelösten Objekt.

Das throw Objekt wird in ein ErrorRecord-Objekt eingeschlossen, und das ErrorRecord-Objekt wird automatisch in der $Error automatischen Variablen gespeichert.

Verwenden throw zum Erstellen eines obligatorischen Parameters

Verwenden Sie im Gegensatz zu früheren Versionen von PowerShell nicht das Schlüsselwort für die throw Parameterüberprüfung. Informationen zur richtigen Vorgehensweise finden Sie unter about_Functions_Advanced_Parameters .

Siehe auch