当非托管或不安全代码试图读写未分配或不具有访问权限的内存空间时,就会产生访问冲突。这种情况通常因为指针具有错误的值而发生。并非所有通过错误指针的读写操作都会引发访问冲突,所以访问冲突通常指示已经通过错误指针进行多次读写操作,并且内存内容可能已损坏。因此,访问冲突几乎总是指示存在严重的编程错误。在 .NET Framework 2.0 版中,AccessViolationException 清楚地标识了这些错误。
在完全由可验证托管代码组成的程序中,所有引用都有效或者为空,因而不会产生访问冲突。AccessViolationException 只在可验证托管代码与非托管代码或非安全托管代码交互时才会引发。
system.accessviolationexception 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
最新推荐文章于 2024-06-17 20:06:06 发布