#PSTip Ignorer les erreurs

Note : Cette astuce nécessite PowerShell 3.0 ou supérieur.

PowerShell vous permet de contrôler la façon dont il répond à une erreur non terminale (une erreur qui n’arrête pas le traitement du cmdlet) globalement via la variable de préférence $ErrorActionPreference, ou au niveau d’un cmdlet en utilisant le paramètre -ErrorAction. Les deux façons prennent en charge les valeurs suivantes :

Stop : affiche le message d’erreur et arrête l’exécution.
Inquiry : Affiche le message d’erreur et vous demande si vous voulez continuer.
Continuer : Affiche le message d’erreur et poursuit (par défaut) l’exécution.
SilentlyContinue : Aucun effet. Le message d’erreur ne s’affiche pas et l’exécution se poursuit sans interruption.

Quelle que soit la valeur choisie, l’erreur est écrite sur l’hôte et ajoutée à la variable $error. À partir de PowerShell 3.0, au niveau d’une commande uniquement (par exemple ErrorAction), nous avons une valeur supplémentaire : Ignorer. Lorsque Ignore est spécifié, l’erreur n’est ni affichée ni ajoutée à la variable $error.

# check the error countPS> $error.Count0# use SilentlyContinue to ignore the errorPS> Get-ChildItem NoSuchFile -ErrorAction SilentlyContinue# error is ignored but is added to the $error variablePS> $error.Count1PS> $error.Clear()# Using Ignore truly discards the error and the error is not added to $error variablePS> Get-ChildItem NoSuchFile -ErrorAction IgnorePS> $error.Count0