Dois-je aborder la gestion des exceptions de la même manière que .Net?
Ensuite, comment puis-je relancer une exception du bloc catch dans Powershell?
'throw' est suffisant ou 'throw $ _' serait mieux?
throw
mot-clé dans PowerShell se comporte différemment de l'implémentation .net: dans .net, vous ne pouvez lancer que System.Exceptions
lui-même ou ses successeurs, mais dans PowerShell, vous pouvez lancer n'importe quoi et qui est automatiquement enveloppé dans un System.Management.Automation.RuntimeException
. Voir l'extrait ici .
Si vous aimez relancer l'exception d'origine, vous pouvez utiliser throw
(la plus courante) ou throw $_
, ou throw $_.Exception
ps: à l'intérieur catch
variable $_
ne fait pas exception en soi, mais System.Management.Automation.ErrorRecord
qui contient une exception