Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwalteter und nicht verwalteter Code kann zusammenarbeiten, um Ausnahmen zu behandeln. Wenn eine Methode eine Ausnahme in verwaltetem Code auslöst, kann die Common Language Runtime ein HRESULT an ein COM-Objekt übergeben. Wenn eine Methode im nicht verwalteten Code fehlschlägt, indem ein HRESULT-Fehler zurückgegeben wird, löst die Laufzeit eine Ausnahme aus, die von verwaltetem Code abgefangen werden kann.
Die Laufzeit ordnet das HRESULT aus der COM-Interoperabilität automatisch spezifischeren Ausnahmen zu. Beispielsweise wird E_ACCESSDENIED zu UnauthorizedAccessException, E_OUTOFMEMORY zu OutOfMemoryException und so weiter.
Wenn das HRESULT ein benutzerdefiniertes Ergebnis ist oder der Laufzeit unbekannt ist, übergibt die Laufzeit ein generisches COMException an den Client. Die ErrorCode-Eigenschaft der COMException enthält den HRESULT-Wert.
Arbeiten mit IErrorInfo
Wenn ein Fehler von COM an verwalteten Code übergeben wird, füllt die Laufzeit das Ausnahmeobjekt mit Fehlerinformationen auf. COM-Objekte, die IErrorInfo unterstützen und HRESULTS zurückgeben, stellen diese Informationen für Ausnahmen mit verwaltetem Code bereit. ** Beispielsweise ordnet die Laufzeit die Beschreibung des COM-Fehlers der Eigenschaft Message der Ausnahme zu. Wenn das HRESULT keine zusätzlichen Fehlerinformationen bereitstellt, füllt die Laufzeit viele der Eigenschaften der Ausnahme mit Standardwerten aus.
Wenn eine Methode im nicht verwalteten Code fehlschlägt, kann eine Ausnahme an ein Segment mit verwaltetem Code übergeben werden. Das Thema HRESULTS und Ausnahmen enthält eine Tabelle, die zeigt, wie HRESULTS zu Laufzeit-Ausnahmeobjekten zugeordnet werden.