Delen via


COM-interop-uitzonderingen verwerken

Beheerde en onbeheerde code kan samenwerken om uitzonderingen af te handelen. Als een methode een uitzondering genereert in beheerde code, kan de algemene taalruntime een HRESULT doorgeven aan een COM-object. Als een methode mislukt in onbeheerde code door een fout HRESULT te retourneren, genereert de runtime een uitzondering die kan worden opgevangen door beheerde code.

De runtime wijst het HRESULT automatisch toe van COM-interop naar specifiekere uitzonderingen. E_ACCESSDENIED wordt bijvoorbeeld UnauthorizedAccessExceptionE_OUTOFMEMORY OutOfMemoryException, enzovoort.

Als het HRESULT een aangepast resultaat is of als het niet bekend is bij de runtime, geeft de runtime een algemeen COMException door aan de client. De eigenschap ErrorCode van de COMException bevat de HRESULT-waarde.

Werken met IErrorInfo

Wanneer een fout wordt doorgegeven van COM aan beheerde code, vult de runtime het uitzonderingsobject met foutinformatie. COM-objecten die IErrorInfo ondersteunen en HRESULTS retourneren, bieden deze informatie aan uitzonderingen voor beheerde code. De runtime wijst bijvoorbeeld de beschrijving van de COM-fout toe aan de eigenschap van Message de uitzondering. Als hresult geen aanvullende foutinformatie bevat, vult de runtime veel van de eigenschappen van de uitzondering met standaardwaarden.

Als een methode mislukt in niet-beheerde code, kan een uitzondering worden doorgegeven aan een beheerd codesegment. Het onderwerp HRESULTS en Uitzonderingen bevat een tabel waarin wordt getoond hoe HRESULTS wordt toegewezen aan runtime-uitzonderingsobjecten.

Zie ook