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.
KURZE BESCHREIBUNG
Beschreibt das Throw-Schlüsselwort, das einen Abbruchfehler 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 stoppen.
Sie können z. B. 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. Sie können auch das Throw-Schlüsselwort in einer Parameterdeklaration verwenden, um einen Funktionsparameter als obligatorisch festzulegen.
Das Throw-Schlüsselwort kann ein beliebiges Objekt auslösen, z. B. eine Benutzermeldungszeichenfolge 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 keinen Ausdruck enthält, wird ein ScriptHalted-Fehler generiert.
C:\PS> throw
ScriptHalted
At line:1 char:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : 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.
WERFEN EINER ZEICHENFOLGE
Der optionale Ausdruck in einer Throw-Anweisung kann eine Zeichenfolge sein, wie im folgenden Beispiel gezeigt:
C:\PS> throw "This is an error."
This is an error.
At line:1 char:6
+ throw <<<< "This is an error."
+ CategoryInfo : OperationStopped: (This is an error.:String) [], R
untimeException
+ FullyQualifiedErrorId : This is an error.
WERFEN ANDERER OBJEKTE
Der Ausdruck kann auch ein Objekt sein, das das Objekt auslöst, das den PowerShell-Prozess darstellt, wie im folgenden Beispiel gezeigt:
C:\PS> throw (get-process PowerShell)
System.Diagnostics.Process (PowerShell)
At line:1 char:6
+ throw <<<< (get-process PowerShell)
+ CategoryInfo : OperationStopped: (System.Diagnostics.Process (Pow
erShell):Process) [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (PowerShell)
Sie können die TargetObject-Eigenschaft des ErrorRecord-Objekts in der $error automatischen Variablen verwenden, um den Fehler zu untersuchen.
C:\PS> $error[0].targetobject
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
319 26 61016 70864 568 3.28 5548 PowerShell
Sie können auch ein ErrorRecord-Objekt oder eine Microsoft .NET Framework-Ausnahme auslösen. Im folgenden Beispiel wird das Throw-Schlüsselwort verwendet, um ein System.FormatException-Objekt auszulösen.
C:\PS> $formatError = new-object system.formatexception
C:\PS> throw $formatError
One of the identified items was in an invalid format.
At line:1 char:6
+ throw <<<< $formatError
+ CategoryInfo : OperationStopped: (:) [], FormatException
+ FullyQualifiedErrorId : One of the identified items was in an invalid
format.
RESULTIERENDER FEHLER
Mit dem Throw-Schlüsselwort kann ein ErrorRecord-Objekt generiert werden. Die Exception-Eigenschaft des ErrorRecord-Objekts enthält ein RuntimeException-Objekt. Der Rest des ErrorRecord-Objekts und des RuntimeException-Objekts variiert je nach dem Objekt, das das Throw-Schlüsselwort auslöst.
Das RunTimeException-Objekt wird in ein ErrorRecord-Objekt eingeschlossen, und das ErrorRecord-Objekt wird automatisch in der $Error automatischen Variablen gespeichert.
VERWENDEN VON THROW ZUM ERSTELLEN EINES OBLIGATORISCHEN PARAMETERS
Sie können das Throw-Schlüsselwort verwenden, um einen Funktionsparameter als obligatorisch festzulegen.
Dies ist eine Alternative zur Verwendung des Parameters Mandatory des Parameter-Schlüsselworts. Wenn Sie den Parameter Obligatorisch verwenden, fordert das System den Benutzer auf, den erforderlichen Parameterwert einzugeben. Wenn Sie das Throw-Schlüsselwort verwenden, wird der Befehl gestoppt und der Fehlerdatensatz wird angezeigt.
Wenn z. B. das Throw-Schlüsselwort im Teilausdruck des Parameters den Path-Parameter zu einem erforderlichen Parameter in der Funktion macht.
In diesem Fall löst das Throw-Schlüsselwort eine Meldungszeichenfolge aus, aber es ist das Vorhandensein des Throw-Schlüsselworts, das den Beendigungsfehler generiert, wenn der Path-Parameter nicht angegeben ist. Der Ausdruck, der auf Throw folgt, ist optional.
function Get-XMLFiles
{
param ($path = $(throw "The Path parameter is required."))
dir -path $path\*.xml -recurse |
sort lastwritetime |
ft lastwritetime, attributes, name -auto
}