Marshal.ThrowExceptionForHR Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 programie .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 programie .NET Framework, zobacz Instrukcje: mapowanie hrESULTów i wyjątków.