146 votes

Création et lancement d'une nouvelle exception

Comment puis-je créer et lancer une nouvelle exception dans PowerShell ?

Je veux faire différentes choses pour une erreur spécifique.

217voto

WiiBopp Points 2500

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

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

Pour lancer une exception générale, utilisez la commande throw suivie d'une chaîne de caractères.

throw "Error trying to do a task"

Lorsqu'il est utilisé à l'intérieur d'un catch, vous pouvez fournir des informations supplémentaires sur ce qui a déclenché l'erreur.

5voto

Dave F Points 1241

Vous pouvez lancer vos propres erreurs personnalisées en étendant la classe Exception.

class CustomException : Exception {
    [string] $additionalData

    CustomException($Message, $additionalData) : base($Message) {
        $this.additionalData = $additionalData
    }
}

try {
    throw [CustomException]::new('Error message', 'Extra data')
} catch [CustomException] {
    # NOTE: To access your custom exception you must use $_.Exception
    Write-Output $_.Exception.additionalData

    # This will produce the error message: Didn't catch it the second time
    throw [CustomException]::new("Didn't catch it the second time", 'Extra data')
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X