Marshal.ThrowExceptionForHR Metoda

Definice

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.

Viz také

Platí pro