Créer et lancer une nouvelle exception

Réponses:

194

Pour appeler une exception spécifique telle que FileNotFoundException, utilisez ce format

if (-not (Test-Path $file)) 
{
    throw [System.IO.FileNotFoundException] "$file not found."
}

Pour lever une exception générale, utilisez la commande throw suivie d'une chaîne.

throw "Error trying to do a task"

Lorsqu'il est utilisé dans une capture, vous pouvez fournir des informations supplémentaires sur ce qui a déclenché l'erreur

WiiBopp
la source
En C ++, il est déconseillé de lancer des chaînes, car elles ne sont pas dans la hiérarchie des exceptions. Cela fonctionne juste, comme dans Powershell, mais ce n'est peut-être pas la meilleure façon de procéder?
Raúl Salinas-Monteagudo
3
Si vous utilisez try..catches dans votre script et que vous avez plusieurs instructions catch appelant des exceptions spécifiques, vous voudrez bien sûr spécifier le type d'exception. Je ne sais pas pourquoi il est fait référence au C ++. Dans les scripts Powershell, une instruction throw est le plus souvent destinée à quitter le script avec un message descriptif. Je ne cherche pas à déclencher un débat, mais Powershell et C ++ sont des animaux extrêmement différents. L'application des meilleures pratiques C ++ ou C # à Powershell doit être tempérée, car le script est plus étroitement associé à la programmation fonctionnelle.
WiiBopp