ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.
C:\Windows-7>Powershell get-help about_Throw -full
# 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