Auf Englisch lesen

Freigeben über


Marshal.GetHRForException(Exception) Methode

Definition

Konvertiert die angegebene Ausnahme in ein HRESULT.

C#
[System.Security.SecurityCritical]
public static int GetHRForException(Exception e);
C#
public static int GetHRForException(Exception? e);
C#
public static int GetHRForException(Exception e);

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:

Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Weitere Informationen