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




Inhaltsverzeichnis