Freigeben über


Marshal.GetHRForException(Exception) Methode

Definition

Konvertiert die angegebene Ausnahme in ein 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

Parameter

e
Exception

Die in ein HRESULT zu konvertierende Ausnahme.

Gibt zurück

Das HRESULT, das der bereitgestellten Ausnahme zugeordnet ist.

Attribute

Hinweise

GetHRForException richtet auch eine IErrorInfo-Schnittstelle für die Ausnahme ein, die durch Aufrufen der COM GetErrorInfoNEEDGUID-Funktion abgerufen werden kann. Sie können diese Funktion verwenden, um einen HRESULT-Wert für eine verwaltete Klassenimplementierung einer COM-Schnittstelle zurückzugeben, in der Sie das PreserveSigAttribute Attribut anwenden. Lassen Sie die attributierte Methode alle Ausnahmen abfangen, und verwenden Sie die GetHRForException -Methode, um den entsprechenden HRESULT-Wert zurückzugeben. Wenn eine Ausnahme außerhalb der -Methode weitergegeben werden kann, wird ein falsches Verhalten erzeugt. (Tatsächlich kann die Common Language Runtime keine Ausnahme an einen COM-Client übergeben, der eine solche Methode über eine V-Tabelle aufruft.)

Beachten Sie, dass die GetHRForException -Methode die IErrorInfo-Schnittstelle des aktuellen Threads festlegt. Dies kann zu unerwarteten Ergebnissen für Methoden wie die Methoden führen, die ThrowExceptionForHR standardmäßig IErrorInfo des aktuellen Threads verwenden, wenn sie festgelegt ist.

Gilt für:

Weitere Informationen