Freigeben über


Informationen zum Throw

KURZE BESCHREIBUNG

Beschreibt das Throw-Schlüsselwort, das einen Abbruchfehler generiert.

LANGE BESCHREIBUNG

Der Schlüsselwort (keyword) löst einen Abbruchfehler aus. Sie können die Throw-Schlüsselwort (keyword) verwenden, um die Verarbeitung eines Befehls, einer Funktion oder eines Skripts zu beenden.

Sie können beispielsweise die Throw-Schlüsselwort (keyword) im Skriptblock einer If-Anweisung verwenden, um auf eine Bedingung oder im Catch-Block einer Try-Catch-Finally-Anweisung zu reagieren. Sie können auch die Throw-Schlüsselwort (keyword) in einer Parameterdeklaration verwenden, um einen Funktionsparameter obligatorisch zu machen.

Das Throw Schlüsselwort (keyword) kann jedes Objekt auslösen, z. B. eine Benutzermeldungszeichenfolge oder das Objekt, das den Fehler verursacht hat.

SYNTAX

Die Syntax des Throw-Schlüsselwort (keyword) lautet wie folgt:

throw [<expression>]

Der Ausdruck in der Throw-Syntax ist optional. Wenn die Throw-Anweisung in einem Catch-Block nicht 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 (keyword) in einem Catch-Block ohne Ausdruck verwendet wird, wird die aktuelle RuntimeException erneut 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 "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.

AUSLÖSEN 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 die Throw-Schlüsselwort (keyword) 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

Das Throw Schlüsselwort (keyword) 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 variieren mit dem Objekt, das vom Throw Schlüsselwort (keyword) ausgelöst wird.

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 die Throw-Schlüsselwort (keyword) verwenden, um einen Funktionsparameter obligatorisch zu machen.

Dies ist eine Alternative zur Verwendung des Parameters Mandatory des parameter Schlüsselwort (keyword). Wenn Sie den Obligatorischen Parameter verwenden, fordert das System den Benutzer zur Eingabe des erforderlichen Parameterwerts auf. Wenn Sie die Schlüsselwort (keyword) "Throw" verwenden, wird der Befehl beendet und der Fehlerdatensatz angezeigt.

Beispielsweise wird der Path-Parameter durch das Throw Schlüsselwort (keyword) im Parameterunterausdruck zu einem erforderlichen Parameter in der Funktion.

In diesem Fall löst das Throw-Schlüsselwort (keyword) eine Nachrichtenzeichenfolge aus, aber es ist das Vorhandensein der Throw-Schlüsselwort (keyword), die 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
}

SIEHE AUCH

about_Break

about_Continue

about_Scopes

about_Trap

about_Try_Catch_Finally