Marshal.GetHRForException(Exception) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.