Beschreibt das Throw-Schlüsselwort, das einen Fehler mit Abbruch (about_Throw)
# THEMA
about_Throw
# KURZBESCHREIBUNG
Beschreibt das Throw-Schlüsselwort, das einen Fehler mit Abbruch
generiert.
# DETAILBESCHREIBUNG
Das Throw-Schlüsselwort verursacht einen Fehler mit Abbruch. Mit
dem Throw-Schlüsselwort können Sie die Verarbeitung eines
Befehls, einer Funktion oder eines Skripts beenden.
Sie können das Throw-Schlüsselwort beispielsweise im Skriptblock
einer IF-Anweisung verwenden, um auf eine Bedingung zu reagieren,
oder Sie verwenden es im Catch-Block einer Try-Catch-Finally-
Anweisung. Außerdem können Sie das Throw-Schlüsselwort in einer
Parameterdeklaration verwenden, um einen Funktionsparameter als
erforderlich festzulegen.
Das Throw-Schlüsselwort kann jedes 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 [<Ausdruck>]
Der Ausdruck in der Throw-Syntax ist optional. Wenn die
Throw-Anweisung nicht in einem Catch-Block enthalten ist und
keinen Ausdruck einschließt, wird ein ScriptHalted-Fehler generiert.
C:\PS> throw
ScriptHalted
Bei Zeile:1 Zeichen:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted
Wenn das Throw-Schlüsselwort ohne Ausdruck in einem Catch-Block
verwendet wird, wird erneut die aktuelle "RuntimeException"
ausgelöst. 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:
C:\PS> throw "Fehler aufgetreten."
Fehler aufgetreten.
Bei Zeile:1 Zeichen:6
+ throw <<<< "Fehler aufgetreten."
+ CategoryInfo : OperationStopped: (Fehler aufgetreten.:String) [], RuntimeException
+ FullyQualifiedErrorId : Fehler aufgetreten.
AUSLÖSEN VON ANDEREN OBJEKTEN
Der Ausdruck kann auch ein Objekt sein,in dem das Objekt, das den
PowerShell-Prozess darstellt, ausgelöst wird, wie im folgenden
Beispiel gezeigt:
C:\PS> throw (get-process powershell)
System.Diagnostics.Process (powershell) Bei Zeile:1 Zeichen:6
+ throw <<<< (get-process powershell)
+ CategoryInfo : OperationStopped: (System.Diagnostics.Process (powershell)):Process, [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (powershell)
Mit der TargetObject-Eigenschaft des ErrorRecord-Objekts in der
automatischen Variablen "$error" können Sie den Fehler überprüfen.
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
Es kann auch ein ErrorRecord-Objekt oder eine Microsoft
.NET Framework-Ausnahme ausgelöst werden. Im folgenden Beispiel
wird mit dem Throw-Schlüsselwort ein System.FormatException-Objekt
ausgelöst.
C:\PS> $formatError = new-object system.formatexception
C:\PS> throw $formatError
Ein identifiziertes Element hat ein ungültiges Format.
Bei Zeile:1 Zeichen:6
+ throw <<<< $formatError
+ CategoryInfo : OperationStopped: (:) [], FormatException
+ FullyQualifiedErrorId : Ein identifiziertes Element hat ein ungültiges Format.
RESULTIERENDER 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 ändert sich abhängig von dem Objekt, das
das Throw-Schlüsselwort auslöst.
Das RunTimeException-Objekt wird von einem ErrorRecord-Objekt
umschlossen, und das ErrorRecord-Objekt wird automatisch in der
automatischen Variablen "$Error" gespeichert.
ERSTELLEN EINES ERFORDERLICHEN PARAMETERS MIT "THROW"
Mit dem Throw-Schlüsselwort können Sie einen Funktionsparameter
als erforderlich festlegen.
Dies ist eine Alternative zur Verwendung des Mandatory-Parameters
des Parameter-Schlüsselworts. Wenn Sie den Mandatory-Parameter
verwenden, fordert das System den Benutzer zur Eingabe des
erforderlichen Parameterwerts auf. Wenn Sie das Throw-Schlüsselwort
verwenden, wird der Befehl beendet, und der Fehlerdatensatz
wird angezeigt.
Bei Verwendung des Throw-Schlüsselworts im Parameterteilausdruck
wird beispielsweise der Path-Parameter als erforderlicher
Parameter in der Funktion festgelegt.
In diesem Fall löst das Throw-Schlüsselwort eine Meldungszeichen-
folge aus. Der Fehler mit Abbruch wird jedoch durch das
Throw-Schlüsselwort generiert, wenn der Path-Parameter nicht
angegeben wird. Der auf "Throw" folgende Ausdruck ist optional.
function Get-XMLFiles
{
param ($path = $(throw "Der Path-Parameter ist erforderlich."))
dir -path $path\* -include *.xml -recurse | sort lastwritetime | ft lastwritetime, attributes, name -auto }
SIEHE AUCH
about_Break
about_Continue
about_Scope
about_Trap
about_Try_Catch_Finally
C:\Windows>powershell get-help about_transactions -full
ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.
about_Throw
# KURZBESCHREIBUNG
Beschreibt das Throw-Schlüsselwort, das einen Fehler mit Abbruch
generiert.
# DETAILBESCHREIBUNG
Das Throw-Schlüsselwort verursacht einen Fehler mit Abbruch. Mit
dem Throw-Schlüsselwort können Sie die Verarbeitung eines
Befehls, einer Funktion oder eines Skripts beenden.
Sie können das Throw-Schlüsselwort beispielsweise im Skriptblock
einer IF-Anweisung verwenden, um auf eine Bedingung zu reagieren,
oder Sie verwenden es im Catch-Block einer Try-Catch-Finally-
Anweisung. Außerdem können Sie das Throw-Schlüsselwort in einer
Parameterdeklaration verwenden, um einen Funktionsparameter als
erforderlich festzulegen.
Das Throw-Schlüsselwort kann jedes 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 [<Ausdruck>]
Der Ausdruck in der Throw-Syntax ist optional. Wenn die
Throw-Anweisung nicht in einem Catch-Block enthalten ist und
keinen Ausdruck einschließt, wird ein ScriptHalted-Fehler generiert.
C:\PS> throw
ScriptHalted
Bei Zeile:1 Zeichen:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted
Wenn das Throw-Schlüsselwort ohne Ausdruck in einem Catch-Block
verwendet wird, wird erneut die aktuelle "RuntimeException"
ausgelöst. 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:
C:\PS> throw "Fehler aufgetreten."
Fehler aufgetreten.
Bei Zeile:1 Zeichen:6
+ throw <<<< "Fehler aufgetreten."
+ CategoryInfo : OperationStopped: (Fehler aufgetreten.:String) [], RuntimeException
+ FullyQualifiedErrorId : Fehler aufgetreten.
AUSLÖSEN VON ANDEREN OBJEKTEN
Der Ausdruck kann auch ein Objekt sein,in dem das Objekt, das den
PowerShell-Prozess darstellt, ausgelöst wird, wie im folgenden
Beispiel gezeigt:
C:\PS> throw (get-process powershell)
System.Diagnostics.Process (powershell) Bei Zeile:1 Zeichen:6
+ throw <<<< (get-process powershell)
+ CategoryInfo : OperationStopped: (System.Diagnostics.Process (powershell)):Process, [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (powershell)
Mit der TargetObject-Eigenschaft des ErrorRecord-Objekts in der
automatischen Variablen "$error" können Sie den Fehler überprüfen.
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
Es kann auch ein ErrorRecord-Objekt oder eine Microsoft
.NET Framework-Ausnahme ausgelöst werden. Im folgenden Beispiel
wird mit dem Throw-Schlüsselwort ein System.FormatException-Objekt
ausgelöst.
C:\PS> $formatError = new-object system.formatexception
C:\PS> throw $formatError
Ein identifiziertes Element hat ein ungültiges Format.
Bei Zeile:1 Zeichen:6
+ throw <<<< $formatError
+ CategoryInfo : OperationStopped: (:) [], FormatException
+ FullyQualifiedErrorId : Ein identifiziertes Element hat ein ungültiges Format.
RESULTIERENDER 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 ändert sich abhängig von dem Objekt, das
das Throw-Schlüsselwort auslöst.
Das RunTimeException-Objekt wird von einem ErrorRecord-Objekt
umschlossen, und das ErrorRecord-Objekt wird automatisch in der
automatischen Variablen "$Error" gespeichert.
ERSTELLEN EINES ERFORDERLICHEN PARAMETERS MIT "THROW"
Mit dem Throw-Schlüsselwort können Sie einen Funktionsparameter
als erforderlich festlegen.
Dies ist eine Alternative zur Verwendung des Mandatory-Parameters
des Parameter-Schlüsselworts. Wenn Sie den Mandatory-Parameter
verwenden, fordert das System den Benutzer zur Eingabe des
erforderlichen Parameterwerts auf. Wenn Sie das Throw-Schlüsselwort
verwenden, wird der Befehl beendet, und der Fehlerdatensatz
wird angezeigt.
Bei Verwendung des Throw-Schlüsselworts im Parameterteilausdruck
wird beispielsweise der Path-Parameter als erforderlicher
Parameter in der Funktion festgelegt.
In diesem Fall löst das Throw-Schlüsselwort eine Meldungszeichen-
folge aus. Der Fehler mit Abbruch wird jedoch durch das
Throw-Schlüsselwort generiert, wenn der Path-Parameter nicht
angegeben wird. Der auf "Throw" folgende Ausdruck ist optional.
function Get-XMLFiles
{
param ($path = $(throw "Der Path-Parameter ist erforderlich."))
dir -path $path\* -include *.xml -recurse | sort lastwritetime | ft lastwritetime, attributes, name -auto }
SIEHE AUCH
about_Break
about_Continue
about_Scope
about_Trap
about_Try_Catch_Finally
C:\Windows>powershell get-help about_transactions -full
ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.