Udostępnij za pośrednictwem


Marshal.ThrowExceptionForHR Metoda

Definicja

Zgłasza wyjątek z określoną wartością HRESULT błędu.

Przeciążenia

ThrowExceptionForHR(Int32)

Zgłasza wyjątek z określoną wartością HRESULT błędu.

ThrowExceptionForHR(Int32, IntPtr)

Zgłasza wyjątek z określonym błędem HRESULT na podstawie określonego interfejsu IErrorInfo .

ThrowExceptionForHR(Int32)

Źródło:
Marshal.cs
Źródło:
Marshal.cs
Źródło:
Marshal.cs

Zgłasza wyjątek z określoną wartością HRESULT błędu.

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)

Parametry

errorCode
Int32

HRESULT odpowiadający żądanemu wyjątkowi.

Atrybuty

Uwagi

Ta metoda tworzy obiekt wyjątku dla określonego błędu HRESULT. Jeśli wartość HRESULT jest 0 lub dodatnia (kod powodzenia), metoda zwraca wartość bez tworzenia lub zgłaszania wyjątku.

Należy pamiętać, że ThrowExceptionForHR(Int32) metoda zwraca wyjątek na podstawie interfejsu IErrorInfo bieżącego wątku, jeśli jest ustawiony. W takim przypadku errorCode parametr jest ignorowany.

Niektóre błędy HRESULTs mapują na zdefiniowane wyjątki, podczas gdy inne nie. Jeśli hrESULT mapuje na zdefiniowany wyjątek, ThrowExceptionForHR tworzy wystąpienie wyjątku i zgłasza go. W przeciwnym razie tworzy wystąpienie klasy COMException, inicjuje pole kodu błędu z hrESULT i zgłasza ten wyjątek. Po ThrowExceptionForHR wywołaniu próbuje pobrać dodatkowe informacje dotyczące błędu przy użyciu niezarządzanej funkcji GetErrorInfo .

Aby uzyskać mapowanie z każdej klasy HRESULT na porównywalną klasę wyjątków w .NET Framework, zobacz Instrukcje: mapowanie hrESULTów i wyjątków.

ThrowExceptionForHR Czasami może zwrócić wyjątek z poprzedniego wywołania COM. W takim przypadku można użyć następującego obejścia i przekazać IntPtr(-1) go jako drugi parametr (errorInfo):

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

Zobacz też

Dotyczy

ThrowExceptionForHR(Int32, IntPtr)

Źródło:
Marshal.cs
Źródło:
Marshal.cs
Źródło:
Marshal.cs

Zgłasza wyjątek z określonym błędem HRESULT na podstawie określonego interfejsu IErrorInfo .

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)

Parametry

errorCode
Int32

HRESULT odpowiadający żądanemu wyjątkowi.

errorInfo
IntPtr

nativeint

Wskaźnik do interfejsu IErrorInfo , który zawiera więcej informacji o błędzie. Można określić IntPtr(0) , aby użyć bieżącego interfejsu IErrorInfo lub IntPtr(-1) zignorować bieżący interfejs IErrorInfo i skonstruować wyjątek tylko z kodu błędu.

Atrybuty

Uwagi

Ta metoda tworzy obiekt wyjątku dla określonego błędu HRESULT. Jeśli wartość HRESULT jest 0 lub dodatnia (kod powodzenia), metoda zwraca wartość bez tworzenia lub zgłaszania wyjątku.

Metoda ThrowExceptionForHR zwalnia errorInfo parametr, zmniejszając liczbę odwołań COM interfejsu IErrorInfo .

Należy pamiętać, że ThrowExceptionForHR metoda zwraca wyjątek na podstawie interfejsu IErrorInfo bieżącego wątku, jeśli jest ustawiony. W takim przypadku errorCode parametr jest ignorowany.

Niektóre błędy HRESULTs mapują na zdefiniowane wyjątki, podczas gdy inne nie. Jeśli hrESULT mapuje na zdefiniowany wyjątek, ThrowExceptionForHR tworzy wystąpienie wyjątku i zgłasza go. W przeciwnym razie tworzy wystąpienie klasy System.Runtime.InteropServices.COMException, inicjuje pole kodu błędu z hrESULT i zgłasza ten wyjątek. Parametr służy do pobierania errorInfo dodatkowych informacji dotyczących błędu.

Aby uzyskać mapowanie z każdej klasy HRESULT na porównywalną klasę wyjątków w .NET Framework, zobacz Instrukcje: mapowanie hrESULTów i wyjątków.

Zobacz też

Dotyczy