Marshal.GetHRForException(Exception) Metoda

Definice

Převede zadanou výjimku na 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 mapovaná 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 v implementaci spravované třídy rozhraní COM, kde použijete PreserveSigAttribute atribut. Nechte přiřazenou metodu zachytit všechny výjimky a použít metodu GetHRForException k vrácení příslušné hodnoty HRESULT. Povolení šíření výjimky 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ý volá takovou metodu prostřednictvím tabulky v-table.)

Všimněte si GetHRForException , že metoda nastaví rozhraní IErrorInfo 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 nastaven.

Platí pro

Viz také