Разрешение вопросов, связанных с исключениями: System.AccessViolationException
Обновлен: Ноябрь 2007
Исключение AccessViolationException возникает при попытке чтения или записи в защищенную область памяти.
Полезные советы
Убедитесь, что память, в которую производится доступ, была выделена.
Автоматическое управление памятью — это одна из служб, которые предоставляет среда CLR. Может потребоваться использовать управляемый код, чтобы воспользоваться преимуществами этой службы. Дополнительные сведения см. в разделе Автоматическое управление памятью.Убедитесь, что память, в которую производится доступ, не была повреждена.
Если несколько операций чтения или записи произошли по неправильным указателям, память может быть повреждена.
Замечания
Нарушение прав доступа случается в неуправляемом или небезопасном коде при попытке чтения или записи в память, которая не была выделена или к которой нет доступа. Не все операции чтения или записи по неправильным указателям приводят к нарушениям прав доступа, поэтому нарушение прав доступа обычно указывает, что таких операций было несколько и что память может быть повреждена.
В управляемом коде все ссылки являются либо допустимыми, либо пустыми. Любая операция, которая пытается сослаться на пустую ссылку в проверяемом коде вызывает исключение NullReferenceException.
Нарушение прав доступа, возникающее в небезопасном управляемом коде, может быть выражено как исключение NullReferenceException или AccessViolationException, в зависимости от платформы.
Нарушения прав доступа в неуправляемом коде, передаваясь вверх к управляемому коду всегда помещаются ("оборачиваются") в исключение AccessViolationException.