AccessViolationException Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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:
- Pelanggaran akses yang terjadi dalam kode terkelola yang tidak aman dapat dinyatakan sebagai NullReferenceException pengecualian atau AccessViolationException pengecualian, tergantung pada platform.
- Pelanggaran akses dalam kode tidak terkelola yang muncul ke kode terkelola selalu dibungkus dengan pengecualian AccessViolationException.
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) |