J'apprends PowerShell ces jours-ci et je suis tombé sur un comportement étrange. Après avoir exécuté le code suivant, dont le seul but est de comprendre la gestion des exceptions :
try
{
throw [System.IO.FileNotFoundException]::new("Thrown a file not found exception")
}
catch [System.Management.Automation.RuntimeException]
{
Write-Output "Entered catch"
}
J'obtiens que "Entered catch" s'affiche à l'écran. Pourquoi cela se produit-il si, selon la documentation en ligne, System.IO.FileNotFoundException n'a pas System.Management.Automation.RuntimeException dans sa ligne d'héritage ? En d'autres termes, je m'attendais à ce que l'exception ne soit pas capturée et que le message d'erreur correspondant soit affiché à l'écran.