AccessViolationException Třída

Definice

Výjimka, která se vyvolá při pokusu o čtení nebo zápis chráněné paměti.

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
Dědičnost
AccessViolationException
Atributy

Poznámky

K narušení přístupu dochází v nespravovaném nebo nebezpečném kódu, když se kód pokusí číst nebo zapisovat do paměti, která nebyla přidělena nebo ke které nemá přístup. K tomu obvykle dochází, protože ukazatel má chybnou hodnotu. Ne všechny čtení nebo zápisy prostřednictvím chybných ukazatelů vedou k narušení přístupu, takže narušení přístupu obvykle značí, že došlo k několika čtením nebo zápisům prostřednictvím chybných ukazatelů a že paměť může být poškozena. Porušení přístupu tedy téměř vždy značí závažné chyby programování. Jasně AccessViolationException identifikuje tyto závažné chyby.

V programech, které se skládají výhradně z ověřitelného spravovaného kódu, jsou všechny odkazy platné nebo null a porušení přístupu nejsou možná. Jakákoli operace, která se pokusí odkazovat na odkaz null v ověřitelném NullReferenceException kódu, vyvolá výjimku. K problému AccessViolationException dochází pouze v případě, že ověřitelný spravovaný kód komunikuje s nespravovaným kódem nebo s nebezpečným spravovaným kódem.

Odstraňování problémů s výjimkami typu AccessViolationException

K AccessViolationException výjimce může dojít pouze v nebezpečném spravovaném kódu nebo v případě, že ověřitelný spravovaný kód komunikuje s nespravovaným kódem:

  • Porušení přístupu, ke kterému dochází v nebezpečném spravovaném NullReferenceException kódu, může být vyjádřeno buď výjimkou, nebo AccessViolationException výjimkou v závislosti na platformě.
  • Porušení přístupu v nespravovaném kódu, které se propaguje do spravovaného kódu, je vždy zabalené do výjimky AccessViolationException.

V obou případech můžete identifikovat a opravit příčinu AccessViolationException výjimky následujícím způsobem:

  • Ujistěte se, že paměť, ke které se pokoušíte získat přístup, byla přidělena. Výjimku AccessViolationException vždy vyvolá pokus o přístup k chráněné paměti – to znamená přístup k paměti, která není přidělena nebo která není vlastněna procesem.

    Automatická správa paměti je jednou ze služeb, které poskytuje modul runtime .NET. Pokud spravovaný kód poskytuje stejné funkce jako nespravovaný kód, zvažte přesun na spravovaný kód, abyste tuto funkci využili. Další informace naleznete v tématu Automatická správa paměti.

  • Ujistěte se, že paměť, ke které se pokoušíte získat přístup, nebyla poškozena. Pokud došlo k několika operacím čtení nebo zápisu chybnými ukazateli, může být paměť poškozena. K tomu obvykle dochází při čtení nebo zápisu na adresy, které jsou mimo rozsah předdefinované vyrovnávací paměti.

AccessViolationException a bloky kódu try/catch

AccessViolationException Výjimky vyvolané modulem runtime .NET nejsou zpracovávány příkazem catch v obslužné rutině strukturované výjimky, pokud k výjimce dochází mimo paměť vyhrazenou modulem runtime.

Caution

Atribut HandleProcessCorruptedStateExceptions je zastaralý v aktuálních verzích .NET. Obnovení z poškozených stavů procesu – výjimky se nepodporují a atribut ( pokud je k dispozici) je ignorován.

Konstruktory

Name Description
AccessViolationException()

Inicializuje novou instanci AccessViolationException třídy se zprávou zadanou systémem, která popisuje chybu.

AccessViolationException(SerializationInfo, StreamingContext)
Zastaralé.

Inicializuje novou instanci AccessViolationException třídy serializovanými daty.

AccessViolationException(String, Exception)

Inicializuje novou instanci AccessViolationException třídy se zadanou chybovou zprávou a odkazem na vnitřní výjimku, která je příčinou této výjimky.

AccessViolationException(String)

Inicializuje novou instanci AccessViolationException třídy se zadanou zprávou, která popisuje chybu.

Vlastnosti

Name Description
Data

Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce.

(Zděděno od Exception)
HelpLink

Získá nebo nastaví odkaz na soubor nápovědy přidružený k této výjimce.

(Zděděno od Exception)
HResult

Získá nebo nastaví HRESULT, kódovanou číselnou hodnotu, která je přiřazena ke konkrétní výjimce.

(Zděděno od Exception)
InnerException

Exception Získá instanci, která způsobila aktuální výjimku.

(Zděděno od Exception)
Message

Získá zprávu, která popisuje aktuální výjimku.

(Zděděno od Exception)
Source

Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu.

(Zděděno od Exception)
StackTrace

Získá řetězcové znázornění okamžitých rámců v zásobníku volání.

(Zděděno od Exception)
TargetSite

Získá metodu, která vyvolá aktuální výjimku.

(Zděděno od Exception)

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetBaseException()

Při přepsání v odvozené třídě vrátí Exception to, že je původní příčinou jedné nebo více následných výjimek.

(Zděděno od Exception)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)
Zastaralé.

Při přepsání v odvozené třídě nastaví SerializationInfo s informacemi o výjimce.

(Zděděno od Exception)
GetType()

Získá typ modulu runtime aktuální instance.

(Zděděno od Exception)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky.

(Zděděno od Exception)

Událost

Name Description
SerializeObjectState
Zastaralé.

Nastane, když je výjimka serializována vytvořit objekt stavu výjimky, který obsahuje serializovaná data o výjimce.

(Zděděno od Exception)

Platí pro

Viz také