Compartilhar via


Exceções de solução de problemas: System.AccessViolationException

Uma AccessViolationException gerada quando há uma tentativa de ler ou gravar na memória protegida.

Dicas relacionadas

  • Verifique se a memória que você está tentando acessar foi alocada.
    O gerenciamento automático de memória é um dos serviços que o Common Language Runtime fornece. Talvez você queira passar para o código gerenciado para aproveitar este serviço. Para obter mais informações, consulte Gerenciamento automático de memória.

  • Verifique se a memória que você está tentando acessar não foi corrompida.
    Se várias operações de leitura ou gravação ocorreram por ponteiros incorretos, a memória pode estar corrompida.

Comentários

Uma violação de acesso ocorre em código não gerenciado ou não seguro quando tenta ler ou gravar na memória que não foi alocada ou para a qual não tem acesso. Nem todas as leituras ou gravações por ponteiros incorretos resultam em violações de acesso, de modo que uma violação de acesso geralmente indica que várias leituras ou gravações ocorreram por ponteiros incorretos, e que a memória pode estar corrompida.

No código gerenciado, todas as referências são válidas ou nulas. Qualquer operação que tente referenciar uma referência nula no código verificável gera NullReferenceException.

Uma violação de acesso que ocorre em código gerenciado não seguro pode ser expressa como NullReferenceException ou AccessViolationException, dependendo da plataforma.

As violações de acesso em código não gerenciado que emergem até o código gerenciado são sempre envolvidas em AccessViolationException.

Consulte também

Tarefas

Como usar o Assistente de Exceção

Conceitos

Gerenciamento de memória: exemplos

Gerenciamento automático de memória