AccessViolationException Sınıf

Tanım

Korumalı belleği okuma veya yazma girişimi olduğunda oluşan özel durum.

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
Devralma
AccessViolationException
Öznitelikler

Açıklamalar

Kod, ayrılmamış veya erişimi olmayan belleğe okuma veya yazma girişiminde bulunduğunda yönetilmeyen veya güvenli olmayan bir kodda erişim ihlali oluşur. Bu durum genellikle işaretçinin hatalı bir değerine sahip olması nedeniyle oluşur. Hatalı işaretçiler aracılığıyla yapılan tüm okuma ve yazma işlemleri erişim ihlallerine yol açmaz, bu nedenle erişim ihlali genellikle hatalı işaretçiler aracılığıyla birkaç okuma veya yazma işlemi gerçekleştiğini ve bu belleğin bozulabileceğini gösterir. Bu nedenle erişim ihlalleri neredeyse her zaman ciddi programlama hatalarına işaret eder. , AccessViolationException bu ciddi hataları net bir şekilde tanımlar.

Tamamen doğrulanabilir yönetilen koddan oluşan programlarda, tüm başvurular geçerli veya null olur ve erişim ihlalleri imkansızdır. Doğrulanabilir kodda null bir başvuruya atıfta bulunmaya çalışan tüm işlemler bir NullReferenceException istisnası fırlatır. Yalnızca AccessViolationException doğrulanabilir yönetilen kod yönetilmeyen kodla veya güvenli olmayan yönetilen kodla etkileşime geçtiğinde gerçekleşir.

AccessViolationException istisnalarını giderme

Özel AccessViolationException durum yalnızca güvenli olmayan yönetilen kodda veya doğrulanabilir yönetilen kod yönetilmeyen kodla etkileşime geçtiğinde oluşabilir:

  • Güvenli olmayan yönetilen kodda oluşan erişim ihlali, platforma bağlı olarak özel NullReferenceException durum veya AccessViolationException özel durum olarak ifade edilebilir.
  • Yönetilmeyen kodda meydana gelen bir erişim ihlali, yönetilen koda yukarı doğru yükselirken her zaman bir AccessViolationException özel durum içinde sarılır.

Her iki durumda da, özel durumun nedenini AccessViolationException aşağıdaki gibi tanımlayabilir ve düzeltebilirsiniz:

  • Erişmeye çalıştığınız belleğin ayrıldığından emin olun. AccessViolationException Korumalı belleğe erişim girişimi her zaman bir istisna fırlatır—bu, ayrılmamış veya bir işleme ait olmayan belleğe erişim demektir.

    Otomatik bellek yönetimi, .NET çalışma zamanının sağladığı hizmetlerden biridir. Yönetilen kod yönetilmeyen kodunuzla aynı işlevi sağlıyorsa, bu işlevden yararlanmak için yönetilen koda geçmeyi göz önünde bulundurun. Daha fazla bilgi için bkz. Otomatik bellek yönetimi.

  • Erişmeye çalıştığınız belleğin bozulmadığından emin olun. Hatalı işaretçiler aracılığıyla birkaç okuma veya yazma işlemi oluştuysa, bellek bozulmuş olabilir. Önceden tanımlanmış bir arabelleğin dışındaki adreslere yazarken veya bu adresleri okurken, bu durum genellikle meydana gelir.

AccessViolationException ve try/catch blokları

AccessViolationException .NET çalışma zamanı tarafından oluşturulan özel durumlar, eğer çalışma zamanı tarafından ayrılan bellek dışında meydana gelirlerse, yapılandırılmış bir özel durum işleyicisindeki catch deyimi tarafından işlenmez.

Caution

HandleProcessCorruptedStateExceptions özniteliği geçerli .NET sürümlerinde kullanımdan kaldırıldı. Bozuk işlem durumundan kurtarma desteklenmez–özel durumlar desteklenmez ve varsa özniteliği yoksayılır.

Oluşturucular

Name Description
AccessViolationException()

hatayı açıklayan sistem tarafından sağlanan bir iletiyle AccessViolationException sınıfının yeni bir örneğini başlatır.

AccessViolationException(SerializationInfo, StreamingContext)
Geçersiz.

Serileştirilmiş verilerle AccessViolationException sınıfının yeni bir örneğini başlatır.

AccessViolationException(String, Exception)

Belirtilen bir hata iletisi ve bu özel durumun nedeni olan iç özel duruma başvuru ile AccessViolationException sınıfının yeni bir örneğini başlatır.

AccessViolationException(String)

hatayı açıklayan belirtilen bir iletiyle AccessViolationException sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
Data

Özel durum hakkında kullanıcı tanımlı ek bilgiler sağlayan anahtar/değer çiftleri koleksiyonunu alır.

(Devralındığı yer: Exception)
HelpLink

Bu özel durumla ilişkili yardım dosyasının bağlantısını alır veya ayarlar.

(Devralındığı yer: Exception)
HResult

Belirli bir özel duruma atanan kodlanmış sayısal bir değer olan HRESULT değerini alır veya ayarlar.

(Devralındığı yer: Exception)
InnerException

Geçerli özel duruma neden olan Exception örneğini alır.

(Devralındığı yer: Exception)
Message

Geçerli özel durumu açıklayan bir ileti alır.

(Devralındığı yer: Exception)
Source

Hataya neden olan uygulamanın veya nesnenin adını alır veya ayarlar.

(Devralındığı yer: Exception)
StackTrace

Çağrı yığınındaki anlık çerçevelerin dize gösterimini alır.

(Devralındığı yer: Exception)
TargetSite

Geçerli özel durumu oluşturan yöntemini alır.

(Devralındığı yer: Exception)

Yöntemler

Name Description
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetBaseException()

Türetilmiş bir sınıfta geçersiz kılındığında, sonraki bir veya daha fazla özel durumun kök nedeni olan Exception döndürür.

(Devralındığı yer: Exception)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetObjectData(SerializationInfo, StreamingContext)
Geçersiz.

Türetilmiş bir sınıfta geçersiz kılındığında, özel durumla ilgili bilgilerle SerializationInfo ayarlar.

(Devralındığı yer: Exception)
GetType()

Geçerli örneğin çalışma zamanı türünü alır.

(Devralındığı yer: Exception)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli özel durumun dize gösterimini oluşturur ve döndürür.

(Devralındığı yer: Exception)

Ekinlikler

Name Description
SerializeObjectState
Geçersiz.

Özel durum hakkında serileştirilmiş veriler içeren bir özel durum durumu nesnesi oluşturmak için bir özel durum seri hale getirildiğinde gerçekleşir.

(Devralındığı yer: Exception)

Şunlara uygulanır

Ayrıca bkz.