RUBRIQUE
    about_Throw

DESCRIPTION COURTE
    Décrit le mot clé Throw, qui génère une erreur avec fin d'exécution.

DESCRIPTION LONGUE
    Le mot clé Throw provoque une erreur avec fin d'exécution. Vous 
    pouvez utiliser le mot clé Throw pour arrêter le traitement d'une 
    commande, d'une fonction ou d'un script. 

    Par exemple, vous pouvez utiliser le mot clé Throw dans le bloc 
    de script d'une instruction If pour répondre à une condition, ou 
    dans le bloc Catch d'une instruction Try-Catch-Finally. Vous 
    pouvez également utiliser le mot clé Throw dans une déclaration 
    de paramètre pour rendre un paramètre de fonction obligatoire. 

    Le mot clé Throw peut lever tout objet, tel qu'une chaîne de 
    message utilisateur ou l'objet qui a provoqué l'erreur. 


 SYNTAXE
    La syntaxe du mot clé Throw est la suivante :

        throw [<expression>]


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

        C:\PS> throw

        ScriptHalted
        À la ligne : 1 Caractère : 6
        + throw <<<<
            + CategoryInfo          : OperationStopped: (:) [], RuntimeException 
            + FullyQualifiedErrorId : ScriptHalted


    Si le mot clé Throw est utilisé dans un bloc Catch sans aucune 
    expression, il lève à nouveau l'exception RuntimeException 
    actuelle. Pour plus d'informations, consultez about_Try_Catch_Finally.


 LEVER UNE CHAÎNE
    L'expression facultative dans une instruction Throw peut être une 
    chaîne, comme affiché dans l'exemple suivant : 

        C:\PS> throw "C'est une erreur."

        C'est une erreur.
        À la ligne : 1 Caractère : 6
        + throw <<<< "C'est une erreur."
            + CategoryInfo          : OperationStopped: (C'est une erreur.:String) [], RuntimeException 
            + FullyQualifiedErrorId : C'est une erreur.


 LEVER D'AUTRES OBJETS
    L'expression peut également être un objet qui lève l'objet 
    représentant le processus PowerShell, comme indiqué dans 
    l'exemple suivant :

        C:\PS> throw (get-process powershell)

        System.Diagnostics.Process (powershell) À la ligne : 1 
        Caractère : 6
        + throw <<<< (get-process powershell)
            + CategoryInfo          : OperationStopped: (System.Diagnostics.Process (powershell):Process) [], 
                                        RuntimeException
            + FullyQualifiedErrorId : System.Diagnostics.Process (powershell)

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


        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           


    Vous pouvez également lever un objet ErrorRecord ou une exception 
    Microsoft .NET Framework. L'exemple suivant utilise le mot clé Throw 
    pour lever un objet System.FormatException.

        C:\PS> $formatError = new-object system.formatexception

        C:\PS> throw $formatError

        Le format de l'un des éléments identifiés n'était pas valide.
        À la ligne : 1 Caractère : 6
        + throw <<<< $formatError
            + CategoryInfo          : OperationStopped: (:) [], FormatException 
            + FullyQualifiedErrorId : Le format de l'un des éléments identifiés n'était pas valide.


 ERREUR OBTENUE
    Le mot clé Throw peut générer un objet ErrorRecord. La propriété 
    Exception de l'objet ErrorRecord contient un objet RuntimeExceptio
    n. Le reste de l'objet ErrorRecord et l'objet RuntimeException 
    varient en fonction de l'objet levé par le mot clé Throw.

    L'objet RunTimeException est encapsulé dans un objet ErrorRecord, 
    et l'objet ErrorRecord est enregistré automatiquement dans la 
    variable automatique $Error.


 UTILISER THROW POUR CRÉER UN PARAMÈTRE OBLIGATOIRE
    Vous pouvez utiliser le mot clé Throw pour rendre un paramètre de 
    fonction obligatoire. 

    Il s'agit d'une alternative à l'utilisation du paramètre Mandatory 
    du mot clé Parameter. Lorsque vous utilisez le paramètre Mandatory, 
    le système invite l'utilisateur à entrer la valeur de paramètre 
    obligatoire. Lorsque vous utilisez le mot clé hrow, la commande 
    Ts'arrête et affiche l'enregistrement d'erreur.

    Par exemple, le mot clé Throw dans la sous-expression du 
    paramètre rend le paramètre Path obligatoire dans la fonction. 

    Dans ce cas, le mot clé Throw lève une chaîne de message, mais 
    c'est la présence du mot clé Throw qui génère l'erreur avec fin 
    d'exécution si le paramètre Path n'est pas spécifié. L'expression 
    qui suit Throw est facultative.

        function Get-XMLFiles
        {
            param ($path = $(throw "Le paramètre Path est obligatoire.")) 
            dir -path $path\* -include *.xml -recurse | sort lastwritetime | ft lastwritetime, attributes, name -auto 
        }


VOIR AUSSI
    about_Break
    about_Continue
    about_Scope
    about_Trap
    about_Try_Catch_Finally




Table des matières