Marshal.ThrowExceptionForHR Metoda

Definice

Vyvolá výjimku s konkrétní hodnotou HRESULT selhání.

Přetížení

ThrowExceptionForHR(Int32)

Vyvolá výjimku s konkrétní hodnotou HRESULT selhání.

ThrowExceptionForHR(Int32, IntPtr)

Vyvolá výjimku s konkrétní chybou HRESULT na základě zadaného rozhraní IErrorInfo .

ThrowExceptionForHR(Int32)

Vyvolá výjimku s konkrétní hodnotou HRESULT selhání.

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 odpovídající požadované výjimce.

Atributy

Poznámky

Tato metoda vytvoří objekt výjimky pro zadané selhání HRESULT. Pokud je HRESULT 0 nebo pozitivní (kód úspěchu), metoda se vrátí bez vytvoření nebo vyvolání výjimky.

Všimněte si, že ThrowExceptionForHR(Int32) metoda vrátí výjimku na základě IErrorInfo rozhraní aktuální vlákno, pokud je nastavena. Pokud k tomu dojde, errorCode parametr se ignoruje.

Některé chyby HRESULT mapují na definované výjimky, zatímco jiné ne. Pokud se HRESULT mapuje na definovanou výjimku, ThrowExceptionForHR vytvoří instanci výjimky a vyvolá ji. V opačném případě vytvoří instanci COMException, inicializuje pole kódu chyby pomocí HRESULT a vyvolá tuto výjimku. Při ThrowExceptionForHR vyvolání se pokusí načíst další informace týkající se chyby pomocí nespravované GetErrorInfo funkce.

Mapování z jednotlivých hrESULT na svoji srovnatelnou třídu výjimek v rozhraní .NET Framework naleznete v tématu Postupy: Mapování HRESULT a výjimek.

ThrowExceptionForHR Občas může vrátit výjimku z předchozího volání modelu COM. V tomto případě můžete použít následující alternativní řešení a předat IntPtr(-1) ho jako druhý parametr (errorInfo):

public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)

Viz také

Platí pro

ThrowExceptionForHR(Int32, IntPtr)

Vyvolá výjimku s konkrétní chybou HRESULT na základě zadaného rozhraní 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 odpovídající požadované výjimce.

errorInfo
IntPtr

nativeint

Ukazatel na rozhraní IErrorInfo , které poskytuje další informace o chybě. Můžete zadat IntPtr(0) použít aktuální IErrorInfo rozhraní, nebo IntPtr(-1) ignorovat aktuální IErrorInfo rozhraní a vytvořit výjimku pouze z kódu chyby.

Atributy

Poznámky

Tato metoda vytvoří objekt výjimky pro zadané selhání HRESULT. Pokud je HRESULT 0 nebo pozitivní (kód úspěchu), metoda se vrátí bez vytvoření nebo vyvolání výjimky.

Metoda ThrowExceptionForHR uvolní errorInfo parametr, čímž se sníží počet odkazů modelu COM rozhraní IErrorInfo .

Všimněte si, že ThrowExceptionForHR metoda vrátí výjimku na základě IErrorInfo rozhraní aktuální vlákno, pokud je nastavena. Pokud k tomu dojde, errorCode parametr se ignoruje.

Některé chyby HRESULT mapují na definované výjimky, zatímco jiné ne. Pokud se HRESULT mapuje na definovanou výjimku, ThrowExceptionForHR vytvoří instanci výjimky a vyvolá ji. V opačném případě vytvoří instanci System.Runtime.InteropServices.COMException, inicializuje pole kódu chyby pomocí HRESULT a vyvolá tuto výjimku. Parametr errorInfo se používá k načtení dalších informací týkajících se chyby.

Mapování z jednotlivých hrESULT na svoji srovnatelnou třídu výjimek v rozhraní .NET Framework naleznete v tématu Postupy: Mapování HRESULT a výjimek.

Viz také

Platí pro