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 Ausnahme, die in ein HRESULT konvertiert werden soll.

Gibt zurück

Das HRESULT, das der angegebenen Ausnahme zugeordnet ist.

Attribute

Hinweise

GetHRForException richtet außerdem eine IErrorInfo-Schnittstelle für die Ausnahme ein, die durch Aufrufen der COM GetErrorInfoNEEDGUID-Funktion abgerufen werden kann. Mit dieser Funktion können Sie einen HRESULT-Wert für eine implementierung einer verwalteten Klasse einer COM-Schnittstelle zurückgeben, auf die Sie das PreserveSigAttribute Attribut anwenden. Lassen Sie die Attributmethode 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 ThrowExceptionForHR Methoden führen, die standardmäßig die IErrorInfo des aktuellen Threads verwenden, wenn sie festgelegt ist.

Gilt für:

Weitere Informationen