Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

AccessViolationException-Klasse

 

Veröffentlicht: August 2016

Die Ausnahme, die bei dem Versuch ausgelöst wird, im geschützten Speicher zu lesen oder zu schreiben.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Exception
    System.SystemException
      System.AccessViolationException

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class AccessViolationException : SystemException

NameBeschreibung
System_CAPS_pubmethodAccessViolationException()

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

System_CAPS_protmethodAccessViolationException(SerializationInfo, StreamingContext)

Initialisiert eine neue Instanz der AccessViolationException-Klasse mit serialisierten Daten.

System_CAPS_pubmethodAccessViolationException(String)

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

System_CAPS_pubmethodAccessViolationException(String, Exception)

Initialisiert eine neue Instanz der AccessViolationException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat.

NameBeschreibung
System_CAPS_pubpropertyData

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen über die Ausnahme bereitstellen.(Geerbt von „Exception“.)

System_CAPS_pubpropertyHelpLink

Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest.(Geerbt von „Exception“.)

System_CAPS_pubpropertyHResult

Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist.(Geerbt von „Exception“.)

System_CAPS_pubpropertyInnerException

Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat.(Geerbt von „Exception“.)

System_CAPS_pubpropertyMessage

Ruft eine Meldung ab, die die aktuelle Ausnahme beschreibt.(Geerbt von „Exception“.)

System_CAPS_pubpropertySource

Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.(Geerbt von „Exception“.)

System_CAPS_pubpropertyStackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab.(Geerbt von „Exception“.)

System_CAPS_pubpropertyTargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.(Geerbt von „Exception“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetBaseException()

Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die ursprüngliche Ursache für eine oder mehrere nachfolgende Ausnahmen ist.(Geerbt von „Exception“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest.(Geerbt von „Exception“.)

System_CAPS_pubmethodGetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.(Geerbt von „Exception“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodToString()

Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück.(Geerbt von „Exception“.)

NameBeschreibung
System_CAPS_proteventSerializeObjectState

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt zu erstellen, das serialisierte Daten für die Ausnahme enthält.(Geerbt von „Exception“.)

Nicht verwalteter bzw. unsicherer Code tritt eine zugriffsverletzung auf, wenn der Code versucht, das Lesen und Schreiben in den Arbeitsspeicher, die nicht zugewiesen wurde, oder auf die er keinen Zugriff. Dieser Fehler tritt gewöhnlich auf, wenn ein Zeiger auf einen ungültigen Wert aufweist. Nicht alle Lese- und Schreibvorgänge, die aufgrund ungültiger Zeiger aufgetreten sind, führen zu Zugriffsverletzungen. Eine Zugriffsverletzung gibt somit an, dass mehrere Lese- und Schreibvorgänge aufgrund ungültiger Zeiger aufgetreten sind und dass der Arbeitsspeicher u. U. beschädigt sein kann. Zugriffsverletzungen geben daher fast immer schwerwiegenden Programmierfehler. Ein AccessViolationException durch diese schwerwiegende Fehler eindeutig identifiziert wird.

Im Programme aus Leerzeichen bestehen überprüfbaren verwalteten Code alle Verweise entweder gültig oder null und zugriffsverletzungen sind nicht möglich. Jeder Vorgang, der versucht, einen null-Verweis in überprüfbarem Code löst eine NullReferenceException Ausnahme. Ein AccessViolationException tritt nur bei überprüfbarer verwalteter Code mit nicht verwaltetem Code oder mit unsicherem verwalteten Code interagiert.

Ein AccessViolationException Ausnahme kann auftreten, nur in unsicherem verwalteten Code oder bei überprüfbar verwalteten Code interagiert mit nicht verwaltetem Code:

  • Eine zugriffsverletzung, die in unsicherem verwalteten Code auftritt, ausgedrückt werden kann, entweder als eine NullReferenceException Ausnahme oder ein AccessViolationException Ausnahme, je nach Plattform.

  • Eine zugriffsverletzung in nicht verwaltetem Code, der bis zu verwaltetem Code ausgelöst wird immer in umschlossen ein AccessViolationException Ausnahme.

In beiden Fällen können Sie identifizieren und beheben Sie die Ursache für die AccessViolationException Ausnahme wie folgt:

Stellen Sie sicher, dass der Arbeitsspeicher, auf den Sie zugreifen möchten, belegt wurde.

Ein AccessViolationException immer von geschütztem Arbeitsspeicher – d. h. Zugriff auf, um Zugriff auf Speicher, die nicht zugeordnet ist, oder, ist nicht im Besitz von einem Prozess, Versuch ausgelöst wird.

Bei der automatischen Speicherverwaltung handelt es sich um einen Dienst, der von der Common Language Runtime zur Verfügung gestellt wird. Wenn verwalteter Code auf die gleiche Funktionalität wie Unmanagede Code bereitstellt, möchten Sie möglicherweise zu verwaltetem Code wechseln, um diese Funktionalität zu nutzen. Weitere Informationen finden Sie unter Automatische Speicherverwaltung.

Stellen Sie sicher, dass der Arbeitsspeicher, auf den Sie zugreifen möchten, nicht beschädigt worden ist.

Wenn aufgrund ungültiger Zeiger mehrere Lese- und Schreibvorgänge erfolgt sind, kann das möglicherweise zu einer Beschädigung des Arbeitsspeichers führen. Dies tritt normalerweise beim Lesen oder Schreiben in Adressen außerhalb einer vordefinierten Puffer.

Beginnend mit der .NET Framework 4, AccessViolationException von der common Language Runtime ausgelöste Ausnahmen werden nicht behandelt, durch die catch -Anweisung in einem strukturierten Ausnahmehandler bei der Ausnahme außerhalb von der common Language Runtime reservierten Speichers auftreten. So behandeln ein AccessViolationException Ausnahme, wenden Sie die HandleProcessCorruptedStateExceptionsAttribute -Attribut auf die Methode, die in der die Ausnahme ausgelöst wird. Diese Änderung wirkt sich nicht AccessViolationException Ausnahmen vom Benutzercode, den abgefangen werden weiterhin können ein catch Anweisung. Für Code geschrieben, die für frühere Versionen von .NET Framework, die Sie verwenden möchten, neu kompilieren und ohne Änderung ausgeführt wird, auf die .NET Framework 4, können Sie hinzufügen, die <legacyCorruptedStateExceptionsPolicy> Element in der app-Konfigurationsdatei.</legacyCorruptedStateExceptionsPolicy> Beachten Sie, dass Sie auch die Benachrichtigung der Ausnahmen empfangen können, wenn Sie einen Handler für definiert haben die AppDomain.FirstChanceException oder AppDomain.UnhandledException Ereignis.

In der .NET Framework 2.0 und höheren Versionen wird diese Ausnahme ausgelöst. In früheren Versionen von .NET Framework wird durch eine zugriffsverletzungen in nicht verwaltetem Code oder unsicherem verwalteten Code dargestellt eine NullReferenceException in verwaltetem Code. Ein NullReferenceException wird auch ausgelöst, wenn ein null-Verweis in verwaltetem Code überprüft, ein Vorfall, der keine: beschädigte Daten, beinhaltet dereferenziert ist und es keine Möglichkeit zur Unterscheidung zwischen den zwei Situationen, in den Versionen 1.0 oder 1.1 gibt.

Administratoren können die ausgewählte Anwendungen, um das Verhalten der .NET Framework, Version 1.1 wiederherzustellen. Platzieren Sie die folgende Zeile in der <runtime>-Element Abschnitt der Konfigurationsdatei für die Anwendung:

<legacyNullReferenceExceptionPolicy enabled = "1"/>

.NET Framework
Verfügbar seit 2.0
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: