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 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.