AccessViolationException Kelas

Definisi

Pengecualian yang dilemparkan ketika ada upaya untuk membaca atau menulis memori yang dilindungi.

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
Warisan
AccessViolationException
Atribut

Keterangan

Pelanggaran akses terjadi dalam kode yang tidak dikelola atau tidak aman ketika kode mencoba membaca atau menulis ke memori yang belum dialokasikan, atau yang tidak memiliki akses. Ini biasanya terjadi karena pointer memiliki nilai yang buruk. Tidak semua pembacaan atau penulisan melalui penunjuk buruk menyebabkan pelanggaran akses, sehingga pelanggaran akses biasanya menunjukkan bahwa beberapa bacaan atau tulis telah terjadi melalui penunjuk buruk, dan memori itu mungkin rusak. Dengan demikian, pelanggaran akses hampir selalu menunjukkan kesalahan pemrograman serius. AccessViolationException dapat secara jelas mengidentifikasi kesalahan serius ini.

Dalam program yang sepenuhnya terdiri dari kode terkelola yang dapat diverifikasi, semua referensi valid atau null, dan pelanggaran akses tidak mungkin. Setiap operasi yang mencoba mereferensikan referensi null dalam kode yang dapat diverifikasi melemparkan NullReferenceException pengecualian. Terjadi AccessViolationException hanya ketika kode terkelola yang dapat diverifikasi berinteraksi dengan kode yang tidak dikelola atau dengan kode terkelola yang tidak aman.

Memecahkan masalah pengecualian tipe AccessViolationException

Pengecualian AccessViolationException hanya dapat terjadi dalam kode terkelola yang tidak aman atau ketika kode terkelola yang dapat diverifikasi berinteraksi dengan kode yang tidak dikelola:

Dalam kedua kasus, Anda dapat mengidentifikasi dan memperbaiki penyebab AccessViolationException pengecualian sebagai berikut:

  • Pastikan bahwa memori yang Anda coba akses telah dialokasikan. Pengecualian AccessViolationException selalu dilemparkan oleh upaya untuk mengakses memori yang dilindungi—yaitu, untuk mengakses memori yang tidak dialokasikan atau yang tidak dimiliki oleh proses.

    Manajemen memori otomatis adalah salah satu layanan yang disediakan runtime .NET. Jika kode terkelola menyediakan fungsionalitas yang sama dengan kode Anda yang tidak dikelola, pertimbangkan untuk pindah ke kode terkelola untuk memanfaatkan fungsionalitas ini. Untuk informasi selengkapnya, lihat Manajemen memori otomatis.

  • Pastikan memori yang Anda coba akses belum rusak. Jika beberapa operasi baca atau tulis telah terjadi melalui penunjuk buruk, memori mungkin rusak. Ini biasanya terjadi ketika membaca atau menulis ke alamat di luar buffer yang telah ditentukan sebelumnya.

AccessViolationException dan Blok Try/Catch

AccessViolationException pengecualian yang dihasilkan oleh runtime .NET tidak ditangani oleh instruksi catch dalam penangan pengecualian terstruktur jika pengecualian terjadi di luar memori yang dicadangkan oleh runtime.

Perhatian

Atribut HandleProcessCorruptedStateExceptions kedaluwarsa dalam versi .NET saat ini. Pemulihan dari status-pengecualian proses yang rusak tidak didukung, dan atribut, jika ada, diabaikan.

Konstruktor

Nama Deskripsi
AccessViolationException()

Menginisialisasi instans AccessViolationException baru kelas dengan pesan yang disediakan sistem yang menjelaskan kesalahan.

AccessViolationException(SerializationInfo, StreamingContext)
Kedaluwarsa.

Menginisialisasi instans AccessViolationException baru kelas dengan data berseri.

AccessViolationException(String, Exception)

Menginisialisasi instans AccessViolationException baru kelas dengan pesan kesalahan tertentu dan referensi ke pengecualian dalam yang merupakan penyebab pengecualian ini.

AccessViolationException(String)

Menginisialisasi instans AccessViolationException baru kelas dengan pesan tertentu yang menjelaskan kesalahan.

Properti

Nama Deskripsi
Data

Mendapatkan kumpulan pasangan kunci/nilai yang memberikan informasi tambahan yang ditentukan pengguna tentang pengecualian.

(Diperoleh dari Exception)
HelpLink

Mendapatkan atau mengatur tautan ke file bantuan yang terkait dengan pengecualian ini.

(Diperoleh dari Exception)
HResult

Mendapatkan atau mengatur HRESULT, nilai numerik berkode yang ditetapkan ke pengecualian tertentu.

(Diperoleh dari Exception)
InnerException

Mendapatkan instans Exception yang menyebabkan pengecualian saat ini.

(Diperoleh dari Exception)
Message

Mendapatkan pesan yang menjelaskan pengecualian saat ini.

(Diperoleh dari Exception)
Source

Mendapatkan atau mengatur nama aplikasi atau objek yang menyebabkan kesalahan.

(Diperoleh dari Exception)
StackTrace

Mendapatkan representasi string dari bingkai langsung pada tumpukan panggilan.

(Diperoleh dari Exception)
TargetSite

Mendapatkan metode yang melemparkan pengecualian saat ini.

(Diperoleh dari Exception)

Metode

Nama Deskripsi
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetBaseException()

Ketika ditimpa di kelas turunan, mengembalikan Exception yang merupakan akar penyebab dari satu atau beberapa pengecualian berikutnya.

(Diperoleh dari Exception)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

Saat ditimpa di kelas turunan, mengatur SerializationInfo dengan informasi tentang pengecualian.

(Diperoleh dari Exception)
GetType()

Mendapatkan jenis runtime instans saat ini.

(Diperoleh dari Exception)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Membuat dan mengembalikan representasi string dari pengecualian saat ini.

(Diperoleh dari Exception)

Acara

Nama Deskripsi
SerializeObjectState
Kedaluwarsa.

Terjadi ketika pengecualian diserialisasikan untuk membuat objek status pengecualian yang berisi data berseri tentang pengecualian.

(Diperoleh dari Exception)

Berlaku untuk

Lihat juga