Freigeben über


Marshal.GetHRForException-Methode

Konvertiert die angegebene Ausnahme in ein HRESULT.

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function GetHRForException ( _
    e As Exception _
) As Integer
'Usage
Dim e As Exception
Dim returnValue As Integer

returnValue = Marshal.GetHRForException(e)
public static int GetHRForException (
    Exception e
)
public:
static int GetHRForException (
    Exception^ e
)
public static int GetHRForException (
    Exception e
)
public static function GetHRForException (
    e : Exception
) : int

Parameter

  • e
    Die in ein HRESULT zu konvertierende Exception.

Rückgabewert

Das HRESULT, das der bereitgestellten Ausnahme zugeordnet ist.

Hinweise

GetHRForException richtet auch eine IErrorInfo-Schnittstelle für die Ausnahme ein, die durch einen Aufruf der GetErrorInfo-COM-API-Methode abgerufen werden kann. Sie können mit dieser Methode einen HRESULT-Wert für die Implementierung einer verwalteten Klasse einer COM-Schnittstelle zurückgeben, auf die System.Runtime.InteropServices.PreserveSigAttribute angewendet wird. Lassen Sie die attributierte Methode alle Ausnahmen abfangen, und verwenden Sie GetHRForException, um den entsprechenden HRESULT-Wert zurückzugeben. Die Weitergabe einer Ausnahme außerhalb der Methode kann zu einem fehlerhaften Verhalten führen. (Faktisch kann die Common Language Runtime keine Ausnahme an einen COM-Client übergeben, der eine solche Methode über eine Vtable aufruft.) Weitere Informationen über die IErrorInfo-Schnittstelle und GetErrorInfo-COM-Methoden finden Sie in der MSDN Library.

Beachten Sie, dass die GetHRForException-Methode die IErrorInfo des aktuellen Threads festlegt. Dies kann bei Methoden wie der ThrowExceptionForHR-Methode, die standardmäßig die IErrorInfo des aktuellen Threads verwenden, sofern festgelegt, zu unerwarteten Ergebnissen führen.

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0

Siehe auch

Referenz

Marshal-Klasse
Marshal-Member
System.Runtime.InteropServices-Namespace
PreserveSigAttribute