Jazyk

Marshal.ThrowExceptionForHR Metoda

Definice

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

Platí pro