AccessViolationException Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- Ö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) |