从Powershell中的变量方法中捕获终止错误

时间:2013-10-18 19:19:42

标签: powershell

我正在尝试捕获在调用方法时导致的错误。在下面的try块中,Set-Acl cmdlet支持ErrorAction并允许我捕获。方法.AddAccessRule不支持 - ErrorAction,但如果用户不存在,有时会失败。我怎样才能发现这个错误?

 Try{
   $acl.AddAccessRule($rule)
   Set-Acl $homeDirectory $acl -ErrorAction Stop -ErrorVariable errvar
 }Catch{
   Log $NewUserLog $errvar
   $Response = [System.Windows.Forms.MessageBox]::Show("Unable to set security on user Folder. Please set NTFS permisions manually." + $ErrorText, "Error")
 }

1 个答案:

答案 0 :(得分:0)

catch块应该捕获AddAccessRule抛出的.NET异常。由于您没有在catch块上指定过滤异常,因此它应该捕获所有“可捕获的”.NET异常。有一些异常不像StackOverflowException那样捕获IIRC。