AccessViolationException AccessViolationException AccessViolationException AccessViolationException Class

Definice

Výjimka, která je vyvolána, když došlo při pokusu o čtení nebo zápisu chráněné paměti.The exception that is thrown when there is an attempt to read or write protected memory.

public ref class AccessViolationException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class AccessViolationException : SystemException
type AccessViolationException = class
    inherit SystemException
Public Class AccessViolationException
Inherits SystemException
Dědičnost
AccessViolationExceptionAccessViolationExceptionAccessViolationExceptionAccessViolationException
Atributy

Poznámky

V nespravované nebo nebezpečný kód dojde k narušení přístupu, když kód se pokusí číst nebo zapisovat do paměti, který nebyl přidělen nebo ke kterému nemá přístup.An access violation occurs in unmanaged or unsafe code when the code attempts to read or write to memory that has not been allocated, or to which it does not have access. K tomu obvykle dojde, protože má ukazatel chybná hodnota.This usually occurs because a pointer has a bad value. Všechny čte nebo zapisuje prostřednictvím chybný ukazatele vést k narušení přístupu, takže narušení přístupu obvykle označuje, že několik čtení nebo zápisu došlo prostřednictvím ukazatele na chybný, a že paměť může být poškozen.Not all reads or writes through bad pointers lead to access violations, so an access violation usually indicates that several reads or writes have occurred through bad pointers, and that memory might be corrupted. Díky tomu se narušení přístupu téměř vždy označení závažné chyby.Thus, access violations almost always indicate serious programming errors. AccessViolationException Jednoznačně identifikuje tyto závažné chyby.An AccessViolationException clearly identifies these serious errors.

V aplikacích, které obsahuje jenom ověřitelný spravovaného kódu všechny odkazy jsou platné nebo hodnotu null a jsou možné narušení přístupu.In programs consisting entirely of verifiable managed code, all references are either valid or null, and access violations are impossible. Všechny operace, která se pokouší odkazovat na odkaz s hodnotou null v vyvolá ověřitelný kód NullReferenceException výjimky.Any operation that attempts to reference a null reference in verifiable code throws a NullReferenceException exception. AccessViolationException Nastane pouze při ověřitelný spravovaný kód spolupracuje s nespravovaným kódem nebo nebezpečných spravovaným kódem.An AccessViolationException occurs only when verifiable managed code interacts with unmanaged code or with unsafe managed code.

Řešení potíží s výjimkami výjimka AccessViolationExceptionTroubleshooting AccessViolationException exceptions

AccessViolationException Může dojít k výjimce jenom ve spravovaném kódu unsafe nebo když ověřitelný spravovaný kód spolupracuje s nespravovaným kódem:An AccessViolationException exception can occur only in unsafe managed code or when verifiable managed code interacts with unmanaged code:

V obou případech můžete identifikovat a opravte příčinu AccessViolationException výjimka následujícím způsobem:In either case, you can identify and correct the cause of the AccessViolationException exception as follows:

Ujistěte se, že byla přidělena paměť, která se pokoušíte získat přístup.Make sure that the memory that you are attempting to access has been allocated.
AccessViolationException Podle pokus o přístup k chráněné paměti – to znamená, pro přístup k paměti, která není přidělená nebo není vlastněn procesu je vždy vyvolána výjimka.An AccessViolationException exception is always thrown by an attempt to access protected memory -- that is, to access memory that is not allocated or that is not owned by a process.

Automatická správa paměti je jedna ze služeb, které poskytuje modul common language runtime.Automatic memory management is one of the services that the common language runtime provides. Pokud spravovaný kód poskytuje stejné funkce jako nespravovaný kód, můžete chtít využít tuto funkci přesunout do spravovaného kódu.If managed code provides the same functionality as your unmanaged code, you may wish to move to managed code to take advantage of this functionality. Další informace najdete v tématu Automatická správa paměti.For more information, see Automatic Memory Management.

Ujistěte se, že nedošlo k poškození paměti, který se pokoušíte získat přístup.Make sure that the memory that you are attempting to access has not been corrupted.
Pokud několik čtení nebo operace zápisu došlo prostřednictvím chybný ukazatelů, může dojít k poškození paměti.If several read or write operations have occurred through bad pointers, memory may be corrupted. K tomu obvykle dochází, když čtení nebo zápis adresy mimo předdefinované vyrovnávací paměti.This typically occurs when reading or writing to addresses outside of a predefined buffer.

Výjimka AccessViolationException a try/catch – blokyAccessViolationException and try/catch blocks

Počínaje .NET Framework 4.NET Framework 4, AccessViolationException výjimky vyvolané modulem common language runtime nezabývá catch příkaz v případě výjimky mimo paměti vyhrazená CLR strukturovanou obslužnou rutinou modul runtime.Starting with the .NET Framework 4.NET Framework 4, AccessViolationException exceptions thrown by the common language runtime are not handled by the catch statement in a structured exception handler if the exception occurs outside of the memory reserved by the common language runtime. Chcete-li například zpracovávat takové AccessViolationException výjimky, byste měli použít HandleProcessCorruptedStateExceptionsAttribute atribut do metody, ve kterém je vyvolána výjimka.To handle such an AccessViolationException exception, you should apply the HandleProcessCorruptedStateExceptionsAttribute attribute to the method in which the exception is thrown. Tato změna nemá vliv na AccessViolationException výjimky vyvolány uživatelským kódem, která může nadále zachytit catch příkazu.This change does not affect AccessViolationException exceptions thrown by user code, which can continue to be caught by a catch statement. Pro kód napsaný pro předchozí verze rozhraní .NET Framework, kterou chcete znovu zkompilovat a spustit bez úprav na .NET Framework 4.NET Framework 4, můžete přidat <legacycorruptedstateexceptionspolicy – > – element pro vaše konfigurační soubor aplikace.For code written for previous versions of the .NET Framework that you want to recompile and run without modification on the .NET Framework 4.NET Framework 4, you can add the <legacyCorruptedStateExceptionsPolicy> element to your app's configuration file. Poznámka: Pokud jste definovali obslužnou rutinu pro mohou také přijímat oznámení o výjimky AppDomain.FirstChanceException nebo AppDomain.UnhandledException událostí.Note that you can also receive notification of the exceptions if you have defined a handler for the AppDomain.FirstChanceException or AppDomain.UnhandledException event.

Informace o verziVersion Information

Tato výjimka je vyvolána v rozhraní .NET Framework 2.0 a novějších verzích.This exception is thrown in the .NET Framework 2.0 and later versions. V dřívějších verzích rozhraní .NET Framework, je reprezentována porušení přístupu v nespravovaných kódu nebo spravovaného kódu nebezpečné NullReferenceException ve spravovaném kódu.In earlier versions of the .NET Framework, an access violation in unmanaged code or unsafe managed code is represented by a NullReferenceException in managed code. A NullReferenceException se také vyvolá, když se přistoupit přes ukazatel odkaz s hodnotou null v ověřitelný spravovaného kódu, opakování, který nezahrnuje poškození dat a neexistuje žádný způsob k rozlišení mezi dvě situace ve verzích 1.0 nebo 1.1.A NullReferenceException is also thrown when a null reference is dereferenced in verifiable managed code, an occurrence that does not involve data corruption, and there is no way to distinguish between the two situations in versions 1.0 or 1.1.

Správci mohou povolit vybrané aplikace se vrátit k chování rozhraní .NET Framework verze 1.1.Administrators can allow selected applications to revert to the behavior of the .NET Framework version 1.1. Vložte následující řádek v <runtime> Element oddílu konfiguračního souboru aplikace:Place the following line in the <runtime> Element section of the configuration file for the application:

<legacyNullReferenceExceptionPolicy enabled = "1"/>  

Konstruktory

AccessViolationException() AccessViolationException() AccessViolationException() AccessViolationException()

Inicializuje novou instanci třídy AccessViolationException třídy pomocí zprávy poskytnuté systémem, popisující chybu.Initializes a new instance of the AccessViolationException class with a system-supplied message that describes the error.

AccessViolationException(SerializationInfo, StreamingContext) AccessViolationException(SerializationInfo, StreamingContext) AccessViolationException(SerializationInfo, StreamingContext) AccessViolationException(SerializationInfo, StreamingContext)

Inicializuje novou instanci třídy AccessViolationException třídy se serializovanými daty.Initializes a new instance of the AccessViolationException class with serialized data.

AccessViolationException(String) AccessViolationException(String) AccessViolationException(String) AccessViolationException(String)

Inicializuje novou instanci třídy AccessViolationException třídy pomocí zadané zprávy popisující chybu.Initializes a new instance of the AccessViolationException class with a specified message that describes the error.

AccessViolationException(String, Exception) AccessViolationException(String, Exception) AccessViolationException(String, Exception) AccessViolationException(String, Exception)

Inicializuje novou instanci třídy AccessViolationException třídy pomocí zadané chybové zprávy a odkazu na vnitřní výjimku, která je příčinou této výjimky.Initializes a new instance of the AccessViolationException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Vlastnosti

Data Data Data Data

Získá kolekci párů klíč/hodnota, které poskytují další uživatelsky definované informace o výjimce.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Získá nebo nastaví odkaz na soubor s nápovědě spojený s touto výjimkou.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Získá nebo nastaví hodnotu HRESULT, kódované číselné hodnoty, která je přiřazena konkrétní výjimce.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Exception Získá instanci, která způsobila aktuální výjimku.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Získá zprávu s popisem aktuální výjimky.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Načte řetězcovou reprezentaci okamžitých snímků v zásobníku volání.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Získá metodu, která vyvolá aktuální výjimku.Gets the method that throws the current exception.

(Inherited from Exception)

Metody

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

Při přepsání v odvozené třídě vrátí hodnotu Exception , která je hlavní příčinou jedné nebo více následných výjimek.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Při přepsání v odvozené třídě nastaví na SerializationInfo výjimku informace o výjimce.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType() GetType() GetType() GetType()

Získá typ modulu runtime aktuální instance.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Vytvoří Mělkou kopii aktuální Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Události

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Nastane, pokud je serializovaná výjimka pro vytvoření objektu stavu výjimky, který obsahuje Serializovaná data o výjimce.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Platí pro

Viz také