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 chyby.
Přetížení
ThrowExceptionForHR(Int32) |
Vyvolá výjimku s konkrétní hodnotou HRESULT chyby. |
ThrowExceptionForHR(Int32, IntPtr) |
Vyvolá výjimku s konkrétním selháním HRESULT na základě zadaného rozhraní IErrorInfo . |
ThrowExceptionForHR(Int32)
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
Vyvolá výjimku s konkrétní hodnotou HRESULT chyby.
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
Hodnota HRESULT odpovídající požadované výjimce.
- Atributy
Poznámky
Tato metoda vytvoří objekt výjimky pro zadanou chybu HRESULT. Pokud je HODNOTA HRESULT 0 nebo kladná (kód úspěchu), vrátí se metoda bez vytvoření nebo vyvolání výjimky.
Všimněte si ThrowExceptionForHR(Int32) , že metoda vrátí výjimku založenou na rozhraní IErrorInfo aktuálního vlákna, pokud je nastavena. Když k tomu dojde, errorCode
parametr se ignoruje.
Některá selhání HRESULT se mapují na definované výjimky, zatímco jiné ne. Pokud 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 s kódem chyby pomocí hodnoty HRESULT a vyvolá tuto výjimku. Při ThrowExceptionForHR vyvolání se pokusí načíst další informace týkající se chyby pomocí nespravované funkce GetErrorInfo .
Mapování z jednotlivých hodnot HRESULT na jeho srovnatelnou třídu výjimek v rozhraní .NET Framework naleznete v tématu Postupy: Mapování HRESULT a výjimek.
Příležitostně ThrowExceptionForHR může vrátit výjimku z předchozího volání modelu COM. V takovém případě můžete použít následující alternativní řešení a předat IntPtr(-1)
jako druhý parametr (errorInfo
):
public static void ThrowExceptionForHR(interrorCode,IntPtrerrorInfo)
Viz také
Platí pro
ThrowExceptionForHR(Int32, IntPtr)
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
Vyvolá výjimku s konkrétním selháním 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
Hodnota HRESULT odpovídající požadované výjimce.
- errorInfo
-
IntPtr
nativeint
Ukazatel na rozhraní IErrorInfo , které poskytuje další informace o chybě. Můžete určit IntPtr(0)
použití 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 zadanou chybu HRESULT. Pokud je HODNOTA HRESULT 0 nebo kladná (kód úspěchu), vrátí se metoda bez vytvoření nebo vyvolání výjimky.
Metoda ThrowExceptionForHR uvolní errorInfo
parametr a sníží počet odkazů modelu COM rozhraní IErrorInfo .
Všimněte si ThrowExceptionForHR , že metoda vrátí výjimku založenou na rozhraní IErrorInfo aktuálního vlákna, pokud je nastavena. Když k tomu dojde, errorCode
parametr se ignoruje.
Některá selhání HRESULT se mapují na definované výjimky, zatímco jiné ne. Pokud 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 s kódem chyby pomocí hodnoty HRESULT a vyvolá tuto výjimku. Parametr errorInfo
slouží k načtení dodatečných informací týkajících se chyby.
Mapování z jednotlivých hodnot HRESULT na jeho srovnatelnou třídu výjimek v rozhraní .NET Framework naleznete v tématu Postupy: Mapování HRESULT a výjimek.