0

メソッドを呼び出すときに発生するエラーをキャッチしようとしています。Set-Aclコマンドレットの下の try ブロックでは、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")
 }
4

1 に答える 1

0

catch ブロックは、AddAccessRule によってスローされた .NET 例外をキャッチする必要があります。catch ブロックでフィルタリング例外を指定していないため、「キャッチ可能な」.NET 例外をすべてキャッチする必要があります。StackOverflowException のように、IIRC をキャッチしない例外がいくつかあります。

于 2013-10-18T19:26:44.327 に答える