Bonjour,
si ton bloc Catch ne fonctionne pas, c'est qu'il doit s'agir d'une erreur non-bloquante qui, à la différence d'une erreur bloquante, ne déclenche pas d'exception.
Utilise -ErrorAction Stop sur le cmdlet qui pose problème :
try {
...
Mycmdlet -EA Stop
...
} catch {
fait qq chose
}
L'usage de -ErrorAction Stop déclenche l'exception suivante
catch [System.Management.Automation.ActionPreferenceStopException]
{
fait qq chose pour -EA Stop
}
} catch {
fait qq chose sinon
}
Bien que la collection d'erreurs, variable $Error, soit renseignée avec la nouvelle erreur, celle-ci n'est pas du type exception :
#Une erreur nonbloquante est du type ErrorRecord (PowerShell)
$error[0].ErrorRecord.Exception
#Une erreur bloquante est d'un type dérivé de la classe Exception (dotnet)
$error[0].Exception
Beatus, qui prodest, quibus potest.