UnauthorizedAccessException vs SecurityException

时间:2010-02-26 03:04:49

标签: .net exception-handling securityexception unauthorizedaccessexcepti

FileStream的MSDN构造函数表示它可能抛出UnauthorizedAccessException或SecurityException。以下是MSDN对这些例外的说法。

UnauthorizedAccessException: 操作系统因I / O错误或特定类型的安全错误而拒绝访问时引发的异常。

SecurityException: 检测到安全性错误时引发的异常。

这两个相似的例外情况有何不同?哪种情况会引发其中任何一种?

1 个答案:

答案 0 :(得分:12)

当访问磁盘上的文件时出现权限错误,则抛出UnauthorizedAccessException。这是操作系统级别的错误,例如正常用户试图覆盖操作系统文件(如kernel32.dll)。

如果CLR级别存在安全违规,则会引发SecurityException。例如,如果您作为低访问ClickOnce应用程序运行,并尝试读取/写入文件系统中由进程中的CLR安全设置禁止的位置。