Freigeben über


über_Auslösen

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.

Siehe auch