我正在尝试捕获在调用方法时导致的错误。在下面的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")
}
答案 0 :(得分:0)
catch块应该捕获AddAccessRule抛出的.NET异常。由于您没有在catch块上指定过滤异常,因此它应该捕获所有“可捕获的”.NET异常。有一些异常不像StackOverflowException那样捕获IIRC。