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í
| Name | Description |
|---|---|
| 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, Guid, IntPtr) |
ThrowExceptionForHR(Int32)
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
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 zadanou chybu HRESULT. Pokud je HODNOTA 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. V takovém případě errorCode se parametr ignoruje.
Některé chyby HRESULT se 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é funkce GetErrorInfo .
Mapování z každého HRESULT na svoji srovnatelnou třídu výjimek v .NET Framework najdete v tématu How to: Map HRESULTs and Exceptions.
V některých případech ThrowExceptionForHR 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) 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
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
Vyvolá výjimku s konkrétní chybou HRESULT na základě zadaného rozhraní IErrorInfo .
public:
static void ThrowExceptionForHR(int errorCode, IntPtr errorInfo);
public static void ThrowExceptionForHR(int errorCode, IntPtr errorInfo);
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 určit IntPtr(0) , jestli chcete použít aktuální rozhraní IErrorInfo , nebo IntPtr(-1) ignorovat aktuální IErrorInfo rozhraní a sestavit výjimku pouze z kódu chyby.
Poznámky
Tato metoda vytvoří objekt výjimky pro zadanou chybu HRESULT. Pokud je HODNOTA 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. V takovém případě errorCode se parametr ignoruje.
Některé chyby HRESULT se 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. Tento errorInfo parametr slouží k načtení dalších informací týkajících se chyby.
Mapování z každého HRESULT na svoji srovnatelnou třídu výjimek v .NET Framework najdete v tématu How to: Map HRESULTs and Exceptions.
Viz také
Platí pro
ThrowExceptionForHR(Int32, Guid, IntPtr)
- Zdroj:
- Marshal.cs
- Zdroj:
- Marshal.cs
public:
static void ThrowExceptionForHR(int errorCode, Guid % iid, IntPtr pUnk);
public static void ThrowExceptionForHR(int errorCode, in Guid iid, IntPtr pUnk);
static member ThrowExceptionForHR : int * Guid * nativeint -> unit
Public Shared Sub ThrowExceptionForHR (errorCode As Integer, ByRef iid As Guid, pUnk As IntPtr)
Parametry
- errorCode
- Int32
- iid
- Guid
- pUnk
-
IntPtr
nativeint