예외 문제 해결: System.AccessViolationException
Visual Studio 2008
업데이트: 2007년 11월
AccessViolationException은 보호된 메모리를 읽거나 쓰려는 경우에 throw됩니다.
설명
비관리 코드나 안전하지 않은 코드에서 할당되지 않았거나 액세스 권한이 없는 메모리를 읽거나 쓰려고 하면 액세스 위반이 발생합니다. 잘못된 포인터를 통해 읽거나 쓸 때 항상 액세스 위반이 발생하는 것은 아닙니다. 액세스 위반은 일반적으로 잘못된 포인터를 통해 여러 차례 읽기 또는 쓰기 작업을 수행하여 메모리가 손상되었을 수 있음을 나타냅니다.
관리 코드에서 모든 참조는 유효하거나 null입니다. 안정형 코드에서 null 참조를 참조하려는 작업을 수행하면 NullReferenceException이 throw됩니다.
안전하지 않은 관리 코드에서 발생하는 액세스 위반은 플랫폼에 따라 NullReferenceException 또는 AccessViolationException으로 표현될 수 있습니다.
비관리 코드에서 발생하여 관리 코드로 전달되는 액세스 위반은 항상 AccessViolationException에 래핑됩니다.