Powershell piège [Exception] n'est pas attraper mon erreur

Pour une raison quelconque, mon script n'est pas la capture de l'exception, quand je lance le script suivant à l'encontre d'un fichier qui n'existe pas. J'ai basé ce code à partir des exemples que j'ai trouvé sur le web, mais il ne semble pas fonctionner pour moi.

J'aimerais avoir des conseils ou des conseils sur la façon de résoudre ce problème.

Remarque: dans l'exemple ci-dessous j'ai aussi essayé

trap [Exception] {

mais cela ne fonctionne pas non plus.

Voici le script:

function CheckFile($f) {

      trap {
        write-host "file not found, skipping".
        continue
      }

      $modtime = (Get-ItemProperty $f).LastWriteTime

      write-host "if file not found then shouldn't see this"
}


write-host "checking a file that does not exist"
CheckFile("C:\NotAFile")
write-host "done."

de sortie:

PS > .\testexception.ps1
checking a file that does not exist
Get-ItemProperty : Cannot find path 'C:\NotAFile' because it does not exist.
At C:\Users\dleclair\Documents\Visual Studio 2010\lib\testexception.ps1:12 char:35
+       $modtime = (Get-ItemProperty <<<<  $f).LastWriteTime
    + CategoryInfo          : ObjectNotFound: (C:\NotAFile:String) [Get-ItemProperty], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand

if file not found then shouldn't see this
done.
PS >

OriginalL'auteur Denis | 2011-08-26