AccessViolationException Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A védett memória olvasására vagy írására tett kísérlet során megjelenő kivétel.
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
- Öröklődés
- Attribútumok
Megjegyzések
A hozzáférés megsértése nem felügyelt vagy nem biztonságos kódban fordul elő, amikor a kód olyan memóriába próbál olvasni vagy írni, amely nincs lefoglalva, vagy amelyhez nincs hozzáférése. Ez általában azért fordul elő, mert egy mutató értéke rossz. Nem minden rossz mutatón keresztüli olvasás vagy írás vezet hozzáférés-szabálysértésekhez, ezért a hozzáférés megsértése általában azt jelzi, hogy több olvasás vagy írás is hibás mutatókon keresztül történt, és a memória megsérülhet. Így a hozzáférés megsértése szinte mindig komoly programozási hibákat jelez. Egyértelműen AccessViolationException azonosítja ezeket a súlyos hibákat.
A teljes mértékben ellenőrizhető felügyelt kódból álló programokban minden hivatkozás érvényes vagy null értékű, és a hozzáférés megsértései lehetetlenek. Minden olyan művelet, amely null hivatkozásra próbál hivatkozni az ellenőrizhető kódban, kivételt NullReferenceException okoz. Ez AccessViolationException csak akkor fordul elő, ha az ellenőrizhető felügyelt kód nem felügyelt kóddal vagy nem biztonságos felügyelt kóddal kommunikál.
AccessViolationException kivételek hibaelhárítása
Kivétel AccessViolationException csak nem biztonságos felügyelt kódban fordulhat elő, vagy ha ellenőrizhető felügyelt kód nem felügyelt kóddal kommunikál:
- A nem biztonságos felügyelt kódban előforduló hozzáférés-megsértések a platformtól függően vagy NullReferenceException kivételként, vagy AccessViolationException kivételként fejezhetők ki.
- A nem felügyelt kódban lévő hozzáférési jogsértés, amely továbbítódik a felügyelt kódba, mindig kivételként van becsomagolva AccessViolationException.
Mindkét esetben az alábbiak szerint azonosíthatja és kijavíthatja a AccessViolationException kivétel okát:
Győződjön meg arról, hogy a elérni kívánt memória lefoglalva lett. Mindig kivétel keletkezik, amikor védett memóriához próbálunk hozzáférni, azaz olyan memóriához, amely nincs lefoglalva, vagy amely nem egy folyamat tulajdona.
Az automatikus memóriakezelés a .NET-futtatókörnyezet által biztosított szolgáltatások egyike. Ha a felügyelt kód ugyanazokat a funkciókat biztosítja, mint a nem felügyelt kód, érdemes lehet áttérni a felügyelt kódra, hogy kihasználhassa ezt a funkciót. További információ: Automatikus memóriakezelés.
Győződjön meg arról, hogy a elérni kívánt memória nem sérült. Ha több olvasási vagy írási művelet is előfordult rossz mutatóval, a memória megsérülhet. Ez általában akkor fordul elő, ha előre definiált pufferen kívüli címekre olvas vagy ír.
AccessViolationException és try/catch blokkok
AccessViolationException A .NET-futtatókörnyezet által kiadott kivételeket nem kezeli a catch strukturált kivételkezelőben lévő utasítás, ha a kivétel a futtatókörnyezet által fenntartott memórián kívül történik.
Caution
A HandleProcessCorruptedStateExceptions attribútum elavult a jelenlegi .NET-verziókban. Sérült folyamatállapotból való helyreállítás – a kivételek nem támogatottak, és a rendszer figyelmen kívül hagyja az attribútumot, ha van ilyen.
Konstruktorok
| Name | Description |
|---|---|
| AccessViolationException() |
Inicializálja az AccessViolationException osztály új példányát egy rendszer által megadott üzenettel, amely leírja a hibát. |
| AccessViolationException(SerializationInfo, StreamingContext) |
Elavult.
Inicializálja az AccessViolationException osztály új példányát szerializált adatokkal. |
| AccessViolationException(String, Exception) |
Inicializálja az AccessViolationException osztály új példányát egy megadott hibaüzenettel és a kivétel okaként szolgáló belső kivételre mutató hivatkozással. |
| AccessViolationException(String) |
Inicializálja az AccessViolationException osztály új példányát egy megadott üzenettel, amely leírja a hibát. |
Tulajdonságok
| Name | Description |
|---|---|
| Data |
Lekéri a kulcs-/érték párok gyűjteményét, amelyek további, felhasználó által definiált információkat biztosítanak a kivételről. (Öröklődés forrása Exception) |
| HelpLink |
Lekéri vagy beállítja a kivételhez társított súgófájlra mutató hivatkozást. (Öröklődés forrása Exception) |
| HResult |
Lekéri vagy beállítja a HRESULT-ot, egy kódolt numerikus értéket, amely egy adott kivételhez van hozzárendelve. (Öröklődés forrása Exception) |
| InnerException |
Lekéri az Exception aktuális kivételt okozó példányt. (Öröklődés forrása Exception) |
| Message |
Az aktuális kivételt leíró üzenet jelenik meg. (Öröklődés forrása Exception) |
| Source |
Lekéri vagy beállítja az alkalmazás vagy a hibát okozó objektum nevét. (Öröklődés forrása Exception) |
| StackTrace |
Lekéri a hívásverem közvetlen kereteinek sztringképét. (Öröklődés forrása Exception) |
| TargetSite |
Lekéri az aktuális kivételt okozó metódust. (Öröklődés forrása Exception) |
Metódusok
| Name | Description |
|---|---|
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetBaseException() |
Ha egy származtatott osztály felül van bírálva, egy Exception vagy több későbbi kivétel kiváltó okát adja vissza. (Öröklődés forrása Exception) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Elavult.
Ha felül van bírálva egy származtatott osztályban, a SerializationInfo kivétel adatait adja meg. (Öröklődés forrása Exception) |
| GetType() |
Lekéri az aktuális példány futtatókörnyezeti típusát. (Öröklődés forrása Exception) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Létrehozza és visszaadja az aktuális kivétel sztring-ábrázolását. (Öröklődés forrása Exception) |
esemény
| Name | Description |
|---|---|
| SerializeObjectState |
Elavult.
Akkor fordul elő, ha a kivétel szerializálva van egy kivételállapot-objektum létrehozásához, amely szerializált adatokat tartalmaz a kivételről. (Öröklődés forrása Exception) |