AccessViolationException Klasse

Definition

Die Ausnahme, die ausgelöst wird, wenn versucht wird, geschützten Speicher zu lesen oder zu schreiben.

public ref class AccessViolationException : SystemException
public class AccessViolationException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class AccessViolationException : SystemException
type AccessViolationException = class
    inherit SystemException
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type AccessViolationException = class
    inherit SystemException
Public Class AccessViolationException
Inherits SystemException
Vererbung
AccessViolationException
Attribute

Hinweise

Ein Zugriffsverstoß tritt in nicht verwalteten oder unsicheren Code auf, wenn der Code versucht, nicht zugewiesenen Speicher zu lesen oder in den Speicher zu schreiben, auf den er keinen Zugriff hat. Dies tritt in der Regel auf, da ein Zeiger einen ungültigen Wert aufweist. Nicht alle Lesevorgänge oder Schreibvorgänge durch fehlerhafte Zeiger führen zu Zugriffsverletzungen, daher weist eine Zugriffsverletzung in der Regel darauf hin, dass mehrere Lese- oder Schreibvorgänge durch fehlerhafte Zeiger aufgetreten sind und dass der Speicher beschädigt sein könnte. So deuten Zugriffsverletzungen fast immer auf schwerwiegende Programmierfehler hin. Eine AccessViolationException identifiziert diese schwerwiegenden Fehler eindeutig.

In Programmen, die vollständig aus überprüfbarem verwaltetem Code bestehen, sind alle Verweise entweder gültig oder null, und Zugriffsverletzungen sind unmöglich. Jeder Vorgang, der versucht, auf einen Nullverweis im nachweisbaren Code zu verweisen, löst eine NullReferenceException Ausnahme aus. Ein AccessViolationException Ereignis tritt nur auf, wenn überprüfbarer verwalteter Code mit nicht verwaltetem Code oder mit unsicherem verwaltetem Code interagiert wird.

Fehlerbehebung von AccessViolationException-Ausnahmen

Eine AccessViolationException Ausnahme kann nur in unsicherem verwaltetem Code auftreten oder wenn überprüfbarer verwalteter Code mit nicht verwaltetem Code interagiert wird:

  • Eine Zugriffsverletzung, die in unsicherem verwaltetem Code auftritt, kann je nach Plattform entweder als NullReferenceException Ausnahme oder als AccessViolationException Ausnahme ausgedrückt werden.
  • Eine Zugriffsverletzung in nicht verwaltetem Code, die bis zu verwaltetem Code an die Oberfläche dringt, wird immer in eine AccessViolationException Ausnahme eingeschlossen.

In beiden Fällen können Sie die Ursache der AccessViolationException Ausnahme wie folgt identifizieren und korrigieren:

  • Stellen Sie sicher, dass der Arbeitsspeicher, auf den Sie zugreifen möchten, zugewiesen wurde. Eine AccessViolationException Ausnahme wird immer ausgelöst, indem versucht wird, auf geschützten Speicher zuzugreifen, d. h. auf den nicht zugeordneten Speicher zuzugreifen oder der nicht im Besitz eines Prozesses ist.

    Die automatische Speicherverwaltung ist einer der Dienste, die von der .NET-Laufzeit bereitgestellt werden. Wenn verwalteter Code die gleiche Funktionalität wie Ihr nicht verwalteter Code bietet, sollten Sie in Betracht ziehen, zu verwaltetem Code zu wechseln, um diese Funktionalität nutzen zu können. Weitere Informationen finden Sie unter "Automatische Speicherverwaltung".

  • Stellen Sie sicher, dass der Arbeitsspeicher, auf den Sie zugreifen möchten, nicht beschädigt wurde. Wenn mehrere Lese- oder Schreibvorgänge durch fehlerhafte Zeiger aufgetreten sind, ist der Arbeitsspeicher möglicherweise beschädigt. Dies tritt in der Regel beim Lesen oder Schreiben in Adressen außerhalb eines vordefinierten Puffers auf.

AccessViolationException und try/catch-Blöcke

AccessViolationException Ausnahmen, die von der .NET-Laufzeit ausgelöst werden, werden nicht von der catch Anweisung in einem strukturierten Ausnahmehandler behandelt, wenn die Ausnahme außerhalb des von der Laufzeit reservierten Arbeitsspeichers auftritt.

Caution

Das HandleProcessCorruptedStateExceptions-Attribut ist in den aktuellen .NET-Versionen veraltet. Die Wiederherstellung von beschädigten Prozessstatus-Ausnahmen wird nicht unterstützt, und das Attribut, falls vorhanden, wird ignoriert.

Konstruktoren

Name Beschreibung
AccessViolationException()

Initialisiert eine neue Instanz der AccessViolationException Klasse mit einer vom System bereitgestellten Meldung, die den Fehler beschreibt.

AccessViolationException(SerializationInfo, StreamingContext)
Veraltet.

Initialisiert eine neue Instanz der AccessViolationException Klasse mit serialisierten Daten.

AccessViolationException(String, Exception)

Initialisiert eine neue Instanz der AccessViolationException Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die die Ursache dieser Ausnahme ist.

AccessViolationException(String)

Initialisiert eine neue Instanz der AccessViolationException Klasse mit einer angegebenen Meldung, die den Fehler beschreibt.

Eigenschaften

Name Beschreibung
Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen.

(Geerbt von Exception)
HelpLink

Dient zum Abrufen oder Festlegen eines Links zur Hilfedatei, die dieser Ausnahme zugeordnet ist.

(Geerbt von Exception)
HResult

Dient zum Abrufen oder Festlegen von HRESULT, einem codierten numerischen Wert, der einer bestimmten Ausnahme zugewiesen ist.

(Geerbt von Exception)
InnerException

Ruft die Exception Instanz ab, die die aktuelle Ausnahme verursacht hat.

(Geerbt von Exception)
Message

Ruft eine Nachricht ab, die die aktuelle Ausnahme beschreibt.

(Geerbt von Exception)
Source

Dient zum Abrufen oder Festlegen des Namens der Anwendung oder des Objekts, das den Fehler verursacht.

(Geerbt von Exception)
StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames im Aufrufstapel ab.

(Geerbt von Exception)
TargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.

(Geerbt von Exception)

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetBaseException()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Exception Ursache einer oder mehrerer nachfolgenden Ausnahmen zurückgegeben.

(Geerbt von Exception)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)
Veraltet.

Wenn sie in einer abgeleiteten Klasse überschrieben wird, werden die SerializationInfo Informationen zur Ausnahme festgelegt.

(Geerbt von Exception)
GetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.

(Geerbt von Exception)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Erstellt und gibt eine Zeichenfolgendarstellung der aktuellen Ausnahme zurück.

(Geerbt von Exception)

Ereignisse

Name Beschreibung
SerializeObjectState
Veraltet.

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmestatusobjekt zu erstellen, das serialisierte Daten zu der Ausnahme enthält.

(Geerbt von Exception)

Gilt für:

Weitere Informationen