Sie sind auf Seite 1von 3

THEMA

about_Throw
KURZBESCHREIBUNG
Beschreibt das Throw-Schlsselwort, das einen Fehler mit Abbruch
generiert.
DETAILBESCHREIBUNG
Das Throw-Schlsselwort verursacht einen Fehler mit Abbruch. Mit
dem Throw-Schlsselwort knnen Sie die Verarbeitung eines
Befehls, einer Funktion oder eines Skripts beenden.
Sie knnen das Throw-Schlsselwort 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. Auerdem knnen Sie das Throw-Schlsselwort in einer
Parameterdeklaration verwenden, um einen Funktionsparameter als
erforderlich festzulegen.
Das Throw-Schlsselwort kann jedes Objekt auslsen, z. B. eine
Benutzermeldungszeichenfolge oder das Objekt, das den Fehler
verursacht hat.
SYNTAX
Die Syntax des Throw-Schlsselworts 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 einschliet, wird ein ScriptHalted-Fehler generiert.
C:\PS> throw
ScriptHalted
Bei Zeile:1 Zeichen:6
+ throw <<<<
+ CategoryInfo : OperationStopped: (:) [], RuntimeException
+ FullyQualifiedErrorId : ScriptHalted
Wenn das Throw-Schlsselwort ohne Ausdruck in einem Catch-Block
verwendet wird, wird erneut die aktuelle "RuntimeException"
ausgelst. Weitere Informationen finden Sie unter
"about_Try_Catch_Finally".
AUSLSEN 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.:Str
ing) [], RuntimeException
+ FullyQualifiedErrorId : Fehler aufgetreten.
AUSLSEN VON ANDEREN OBJEKTEN
Der Ausdruck kann auch ein Objekt sein,in dem das Objekt, das den
PowerShell-Prozess darstellt, ausgelst 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.Proc
ess (powershell)):Process, [],
RuntimeException
+ FullyQualifiedErrorId : System.Diagnostics.Process (powershell)
Mit der TargetObject-Eigenschaft des ErrorRecord-Objekts in der
automatischen Variablen "$error" knnen Sie den Fehler berprfen.
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 ausgelst werden. Im folgenden Beispiel
wird mit dem Throw-Schlsselwort ein System.FormatException-Objekt
ausgelst.
C:\PS> $formatError = new-object system.formatexception
C:\PS> throw $formatError
Ein identifiziertes Element hat ein ungltiges Format.
Bei Zeile:1 Zeichen:6
+ throw <<<< $formatError
+ CategoryInfo : OperationStopped: (:) [], FormatException
+ FullyQualifiedErrorId : Ein identifiziertes Element hat ein ungltig
es Format.
RESULTIERENDER FEHLER
Das Throw-Schlsselwort kann ein ErrorRecord-Objekt generieren.
Die Exception-Eigenschaft des ErrorRecord-Objekts enthlt ein
RuntimeException-Objekt. Der Rest des ErrorRecord-Objekts und des
RuntimeException-Objekts ndert sich abhngig von dem Objekt, das
das Throw-Schlsselwort auslst.
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-Schlsselwort knnen Sie einen Funktionsparameter
als erforderlich festlegen.
Dies ist eine Alternative zur Verwendung des Mandatory-Parameters
des Parameter-Schlsselworts. Wenn Sie den Mandatory-Parameter
verwenden, fordert das System den Benutzer zur Eingabe des
erforderlichen Parameterwerts auf. Wenn Sie das Throw-Schlsselwort
verwenden, wird der Befehl beendet, und der Fehlerdatensatz
wird angezeigt.
Bei Verwendung des Throw-Schlsselworts im Parameterteilausdruck
wird beispielsweise der Path-Parameter als erforderlicher
Parameter in der Funktion festgelegt.
In diesem Fall lst das Throw-Schlsselwort eine Meldungszeichen-
folge aus. Der Fehler mit Abbruch wird jedoch durch das
Throw-Schlsselwort 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