Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Kurzbeschreibung
Beschreibt das schlüsselwort throw, das einen Beendigungsfehler generiert.
Lange Beschreibung
Die throw Schlüsselwort führt zu einem Abbruchfehler. Sie können das schlüsselwort throw verwenden, um die Verarbeitung eines Befehls, einer Funktion oder eines Skripts zu beenden.
Sie können beispielsweise das throw-Schlüsselwort im Skriptblock einer if-Anweisung verwenden, um auf eine Bedingung zu reagieren, oder im catch-Block einer try-catch-finally-Anweisung.
Das schlüsselwort throw kann jedes Objekt auslösen, z. B. eine Benutzernachrichtenzeichenfolge oder das Objekt, das den Fehler verursacht hat.
Syntax
Die Syntax des schlüsselworts throw lautet wie folgt:
throw [<expression>]
Der Ausdruck in der throw-Syntax ist optional. Wenn die throw Anweisung erscheint nicht in einer catch Blocks, der keinen Ausdruck enthält, wird ein ScriptHalted Fehler.
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 über_Versuchen_Fangen_Finale.
Werfen einer Schnur
Der optionale Ausdruck in einer throw-Anweisung kann ein String sein, wie im folgenden Beispiel verdeutlicht wird:
throw "This is an error."
Exception: This is an error.
Werfen von anderen Gegenständen
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 ZielObjekt Eigenschaft der ErrorRecord Objekt in der $Error automatische Variable, 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 eine ErrorRecord Objekt oder eine .NET-Ausnahme. Das folgende Beispiel verwendet die throw Schlüsselwort zum Auslösen einer System.FormatException Objekt.
$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.
Der resultierende Fehler
Die throw Schlüsselwort kann eine ErrorRecord Objekt. Die Ausnahme Eigenschaft der ErrorRecord Objekt enthält eine RuntimeException Objekt.
Der Rest des ErrorRecord-Objekts und des RuntimeException- Objekts variiert je nach ausgelösten Objekt.
Das Objekt throw wird in ein ErrorRecord--Objekt eingeschlossen, und das ErrorRecord-Objekt wird automatisch in der automatischen Variablen $Error gespeichert.
Verwendung von throw um einen obligatorischen Parameter zu erstellen
Verwenden Sie im Gegensatz zu früheren Versionen von PowerShell nicht das schlüsselwort throw für die Parameterüberprüfung. Siehe about_Functions_Advanced_Parameters für den richtigen Weg.