2013-10-18 21 views
0

我正試圖捕獲在調用方法時導致的錯誤。在Set-Acl cmdlet下面的try塊中,支持ErrorAction並允許我捕獲。方法.AddAccessRule不支持 - ErrorAction,但如果用戶不存在,則有時會失敗。我怎樣才能捕捉到這個錯誤?從Powershell中的變量方法捕捉終止錯誤

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

catch塊應該捕獲AddAccessRule拋出的.NET異常。由於您沒有在catch塊上指定過濾例外,它應該捕獲所有「可捕獲」的.NET例外。有一些例外情況不像StackOverflowException那樣捕獲IIRC。