Bagikan melalui


Marshal.ThrowExceptionForHR Metode

Definisi

Memberikan pengecualian dengan nilai HRESULT kegagalan tertentu.

Overload

ThrowExceptionForHR(Int32)

Memberikan pengecualian dengan nilai HRESULT kegagalan tertentu.

ThrowExceptionForHR(Int32, IntPtr)

Memberikan pengecualian dengan kegagalan tertentu HRESULT, berdasarkan antarmuka IErrorInfo yang ditentukan.

ThrowExceptionForHR(Int32)

Sumber:
Marshal.cs
Sumber:
Marshal.cs
Sumber:
Marshal.cs

Memberikan pengecualian dengan nilai HRESULT kegagalan tertentu.

public:
 static void ThrowExceptionForHR(int errorCode);
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR (int errorCode);
public static void ThrowExceptionForHR (int errorCode);
[<System.Security.SecurityCritical>]
static member ThrowExceptionForHR : int -> unit
static member ThrowExceptionForHR : int -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer)

Parameter

errorCode
Int32

HRESULT sesuai dengan pengecualian yang diinginkan.

Atribut

Keterangan

Metode ini membuat objek pengecualian untuk HRESULT kegagalan yang ditentukan. Jika HRESULT adalah 0 atau positif (kode keberhasilan), metode akan kembali tanpa membuat atau melemparkan pengecualian.

Perhatikan bahwa ThrowExceptionForHR(Int32) metode mengembalikan pengecualian berdasarkan antarmuka IErrorInfo dari utas saat ini jika satu diatur. Ketika ini terjadi, errorCode parameter diabaikan.

Beberapa HRESULT kegagalan memetakan pengecualian yang ditentukan, sedangkan yang lain tidak. Jika HRESULT memetakan ke pengecualian yang ditentukan, ThrowExceptionForHR membuat instans pengecualian dan melemparkannya. Jika tidak, ia membuat instans COMException, menginisialisasi bidang kode kesalahan dengan HRESULT, dan melemparkan pengecualian tersebut. Ketika ThrowExceptionForHR dipanggil, ia mencoba untuk mengambil informasi tambahan mengenai kesalahan dengan menggunakan fungsi GetErrorInfo yang tidak dikelola.

Untuk pemetaan dari setiap HRESULT ke kelas pengecualian yang sebanding di .NET Framework, lihat Cara: Memetakan HRESULT dan Pengecualian.

Terkadang, ThrowExceptionForHR mungkin mengembalikan pengecualian dari panggilan COM sebelumnya. Dalam hal ini, Anda dapat menggunakan solusi berikut dan meneruskan IntPtr(-1) sebagai parameter kedua (errorInfo):

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

Lihat juga

Berlaku untuk

ThrowExceptionForHR(Int32, IntPtr)

Sumber:
Marshal.cs
Sumber:
Marshal.cs
Sumber:
Marshal.cs

Memberikan pengecualian dengan kegagalan tertentu HRESULT, berdasarkan antarmuka IErrorInfo yang ditentukan.

public:
 static void ThrowExceptionForHR(int errorCode, IntPtr errorInfo);
[System.Security.SecurityCritical]
public static void ThrowExceptionForHR (int errorCode, IntPtr errorInfo);
public static void ThrowExceptionForHR (int errorCode, IntPtr errorInfo);
[<System.Security.SecurityCritical>]
static member ThrowExceptionForHR : int * nativeint -> unit
static member ThrowExceptionForHR : int * nativeint -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer, errorInfo As IntPtr)

Parameter

errorCode
Int32

HRESULT sesuai dengan pengecualian yang diinginkan.

errorInfo
IntPtr

nativeint

Penunjuk ke antarmuka IErrorInfo yang menyediakan informasi lebih lanjut tentang kesalahan tersebut. Anda dapat menentukan IntPtr(0) untuk menggunakan antarmuka IErrorInfo saat ini, atau IntPtr(-1) untuk mengabaikan antarmuka IErrorInfo saat ini dan membuat pengecualian hanya dari kode kesalahan.

Atribut

Keterangan

Metode ini membuat objek pengecualian untuk HRESULT kegagalan yang ditentukan. Jika HRESULT adalah 0 atau positif (kode keberhasilan), metode akan kembali tanpa membuat atau melemparkan pengecualian.

Metode ThrowExceptionForHR ini merilis errorInfo parameter, mengurangi jumlah referensi COM dari antarmuka IErrorInfo .

Perhatikan bahwa ThrowExceptionForHR metode mengembalikan pengecualian berdasarkan antarmuka IErrorInfo dari utas saat ini jika satu diatur. Ketika ini terjadi, errorCode parameter diabaikan.

Beberapa HRESULT kegagalan memetakan pengecualian yang ditentukan, sedangkan yang lain tidak. Jika HRESULT memetakan ke pengecualian yang ditentukan, ThrowExceptionForHR membuat instans pengecualian dan melemparkannya. Jika tidak, ia membuat instans System.Runtime.InteropServices.COMException, menginisialisasi bidang kode kesalahan dengan HRESULT, dan melemparkan pengecualian tersebut. Parameter errorInfo digunakan untuk mengambil informasi tambahan mengenai kesalahan.

Untuk pemetaan dari setiap HRESULT ke kelas pengecualian yang sebanding di .NET Framework, lihat Cara: Memetakan HRESULT dan Pengecualian.

Lihat juga

Berlaku untuk