Partager via


about_Throw

Description courte

Décrit la throw mot clé qui génère une erreur de fin.

Description longue

La throw mot clé provoque une erreur de fin. Vous pouvez utiliser le throw mot clé pour arrêter le traitement d’une commande, d’une fonction ou d’un script.

Par exemple, vous pouvez utiliser la throw mot clé dans le bloc de script d’une if instruction pour répondre à une condition ou dans le catch bloc d’une try--catchfinally instruction.

Le throw mot clé peut lever n’importe quel objet, tel qu’une chaîne de message utilisateur ou l’objet qui a provoqué l’erreur.

Syntaxe

La syntaxe du throw mot clé est la suivante :

throw [<expression>]

L’expression dans la throw syntaxe est facultative. Lorsque l’instruction throw n’apparaît pas dans un catch bloc et qu’elle n’inclut pas d’expression, elle génère une erreur ScriptHalted .

throw
Exception: ScriptHalted

Si le throw mot clé est utilisé dans un catch bloc sans expression, il lève à nouveau l’objet RuntimeException actuel. Pour plus d’informations, consultez about_Try_Catch_Finally.

Levée d’une chaîne

L’expression facultative dans une throw instruction peut être une chaîne, comme illustré dans l’exemple suivant :

throw "This is an error."
Exception: This is an error.

Levée d’autres objets

L’expression peut également être un objet qui lève l’objet qui représente le processus PowerShell, comme illustré dans l’exemple suivant :

throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)

Vous pouvez utiliser la propriété TargetObject de l’objet ErrorRecord dans la $Error variable automatique pour examiner l’erreur.

$Error[0].TargetObject
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    125   174.44     229.57      23.61    1548   2 pwsh
     63    44.07      81.95       1.75    1732   2 pwsh
     63    43.32      77.65       1.48    9092   2 pwsh

Vous pouvez également throw utiliser un objet ErrorRecord ou une exception .NET. L’exemple suivant utilise le throw mot clé pour lever un objet System.FormatException.

$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.

Erreur résultante

Le throw mot clé peut générer un objet ErrorRecord. La propriété Exception de l’objet ErrorRecord contient un objet RuntimeException . Le reste de l’objet ErrorRecord et de l’objet RuntimeException varie en fonction de l’objet levée.

L’objet throw est encapsulé dans un objet ErrorRecord et l’objet ErrorRecord est automatiquement enregistré dans la $Error variable automatique.

Utilisation throw pour créer un paramètre obligatoire

Contrairement aux versions antérieures de PowerShell, n’utilisez pas le mot clé pour la throw validation des paramètres. Consultez about_Functions_Advanced_Parameters pour obtenir la bonne façon.

Voir aussi