COMException Kelas

Definisi

Pengecualian yang dilemparkan ketika HRESULT yang tidak dikenal dikembalikan dari panggilan metode COM.

public ref class COMException : Exception
public ref class COMException : System::Runtime::InteropServices::ExternalException
public class COMException : Exception
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
public class COMException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class COMException : System.Runtime.InteropServices.ExternalException
type COMException = class
    inherit Exception
type COMException = class
    inherit ExternalException
[<System.Serializable>]
type COMException = class
    inherit ExternalException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type COMException = class
    inherit ExternalException
Public Class COMException
Inherits Exception
Public Class COMException
Inherits ExternalException
Warisan
COMException
Warisan
Turunan
Atribut

Keterangan

Kelas COMException adalah pengecualian yang dihasilkan ketika panggilan metode COM mengembalikan HRESULT yang tidak dikenali.

Lingkungan waktu proses bahasa umum mengubah HRESULT terkenal menjadi pengecualian .NET, memungkinkan objek COM mengembalikan informasi kesalahan yang bermakna kepada klien terkelola. Pemetaan HRESULT-to-exception juga berfungsi ke arah lain dengan mengembalikan HRESULT tertentu ke klien yang tidak dikelola. Untuk detail pemetaan, lihat Cara memetakan HRESULT dan pengecualian.

Ketika runtime menemukan HRESULT yang tidak dikenal (HRESULT yang tidak memiliki pengecualian tertentu yang sesuai), runtime akan menerbitkan sebuah instance dari kelas COMException. Pengecualian serbaguna ini mengekspos anggota yang sama dengan pengecualian lainnya dan mewarisi properti publik ErrorCode yang berisi HRESULT yang dikembalikan oleh fungsi yang dipanggil. Jika pesan kesalahan tersedia untuk runtime (diperoleh dari antarmuka IErrorInfo atau Err objek di Visual Basic, atau dalam beberapa kasus dari sistem operasi), pesan dikembalikan ke pemanggil. Namun, jika pengembang komponen COM gagal menyertakan pesan kesalahan, runtime mengembalikan HRESULT delapan digit sebagai pengganti string pesan. Memiliki HRESULT memungkinkan pemanggil untuk menentukan penyebab pengecualian generik.

Menangani pengecualian COMException

Berikut ini adalah beberapa pertimbangan dalam menangani pengecualian COMException.

Periksa properti ErrorCode Ketika runtime menemui HRESULT yang tidak dikenal dan melempar pengecualian COMException, properti ErrorCode mencakup pesan kesalahan atau, jika pesan tidak tersedia, nilai HRESULT delapan digit. Pesan kesalahan atau nilai HRESULT dapat membantu Anda menentukan penyebab pengecualian.

Untuk daftar nilai HRESULT, lihat Nilai HRESULT Umum.

Saat meneruskan argument binding terlambat ke metode objek Microsoft Office, pengecualian mungkin terjadi saat objek adalah objek COM. Pengikatan terlambat mengasumsikan bahwa panggilan metode tersebut memerlukan ByRef parameter dan bahwa properti yang Anda berikan memiliki set pengakses. Jika properti tidak ada, .NET menghasilkan pengecualian MissingMethodException (dengan HRESULT CORE_E_MISSINGMETHOD). Untuk mengatasi perilaku ini, gunakan objek yang terikat lebih awal atau gunakan variabel sebagai pengganti properti dari objek.

COM digunakan untuk berkomunikasi antara Visual Studio dan proses hosting. Karena digunakan sebelum kode berjalan, panggilan ke CoInitializeSecurity menyebabkan pengecualian ini dilemparkan. Dalam beberapa kasus, menjalankan Visual Studio sebagai Administrator dapat mengatasi masalah tersebut. Anda juga dapat menonaktifkan proses hosting.

Melempar pengecualian COMException

Meskipun Anda dapat menggunakan kelas COMException untuk mengembalikan HRESULT tertentu ke klien unmanaged, melemparkan pengecualian .NET tertentu lebih disarankan daripada menggunakan pengecualian generik. Pertimbangkan bahwa klien terkelola serta klien yang tidak dikelola dapat menggunakan objek .NET Anda, dan melempar HRESULT ke pemanggil terkelola kurang dapat dipahami daripada melempar pengecualian.

Konstruktor

Nama Deskripsi
COMException()

Menginisialisasi instans COMException baru kelas dengan nilai default.

COMException(SerializationInfo, StreamingContext)
Kedaluwarsa.

Menginisialisasi instans COMException baru kelas dari data serialisasi.

COMException(String, Exception)

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

COMException(String, Int32)

Menginisialisasi instans COMException baru kelas dengan pesan dan kode kesalahan tertentu.

COMException(String)

Menginisialisasi instans COMException baru kelas dengan pesan tertentu.

Properti

Nama Deskripsi
Data

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

(Diperoleh dari Exception)
ErrorCode

HRESULT Mendapatkan kesalahan.

(Diperoleh dari ExternalException)
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()

Mengonversi konten pengecualian menjadi string.

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