Sdílet prostřednictvím


Marshal.GetHRForException(Exception) Metoda

Definice

Převede zadanou výjimku na hodnotu HRESULT.

public:
 static int GetHRForException(Exception ^ e);
[System.Security.SecurityCritical]
public static int GetHRForException (Exception e);
public static int GetHRForException (Exception? e);
public static int GetHRForException (Exception e);
[<System.Security.SecurityCritical>]
static member GetHRForException : Exception -> int
static member GetHRForException : Exception -> int
Public Shared Function GetHRForException (e As Exception) As Integer

Parametry

e
Exception

Výjimka pro převod na HRESULT.

Návraty

Hodnota HRESULT namapovaná na zadanou výjimku.

Atributy

Poznámky

GetHRForException také nastaví rozhraní IErrorInfo pro výjimku, kterou lze získat voláním funkce COM GetErrorInfoNEEDGUID. Tuto funkci můžete použít k vrácení hodnoty HRESULT na implementaci spravované třídy rozhraní COM, kde použijete PreserveSigAttribute atribut . Nechte metodu s atributem zachytit všechny výjimky a použít metodu GetHRForException k vrácení odpovídající hodnoty HRESULT. Povolení výjimky šíření mimo metodu vede k nesprávnému chování. (Modul CLR (Common Language Runtime) ve skutečnosti nedokáže předat výjimku klientovi COM, který takovou metodu volá prostřednictvím tabulky v.)

Všimněte si GetHRForException , že metoda nastaví IErrorInfo rozhraní aktuálního vlákna. To může způsobit neočekávané výsledky pro metody, jako ThrowExceptionForHR jsou metody, které ve výchozím nastavení používají IErrorInfo aktuálního vlákna, pokud je nastavena.

Platí pro

Viz také