Marshal.ThrowExceptionForHR Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.