Share via


COM interop kivételek kezelése

A felügyelt és a nem felügyelt kód együttműködve kezelheti a kivételeket. Ha egy metódus kivételt jelez a felügyelt kódban, a közös nyelvi futtatókörnyezet HRESULT-ot adhat át egy COM-objektumnak. Ha egy metódus nem felügyelt kódban meghiúsul egy HRESULT hiba visszaadásával, a futtatókörnyezet kivételt eredményez, amely a felügyelt kóddal fogható el.

A futtatókörnyezet automatikusan leképozza a HRESULT-t a COM-interopból konkrétabb kivételekre. Például E_ACCESSDENIED lesz UnauthorizedAccessException, E_OUTOFMEMORY lesz OutOfMemoryException, és így tovább.

Ha a HRESULT egyéni eredmény, vagy ismeretlen a futtatókörnyezet számára, a futtatókörnyezet általános értéket ad át COMException az ügyfélnek. A COMException ErrorCode tulajdonsága tartalmazza a HRESULT értéket.

Az IErrorInfo használata

Ha a RENDSZER hibát ad át a COM-ból a felügyelt kódnak, a futtatókörnyezet hibainformációkkal tölti fel a kivételobjektumot. Az IErrorInfo-t támogató és a HRESULTS visszatérési HRESULTS-t támogató COM-objektumok ezt az információt a felügyelt kód kivételeihez adják meg. A futtatókörnyezet például leképezi a COM-hiba leírását a kivétel tulajdonságára Message . Ha a HRESULT nem ad meg további hibainformációkat, a futtatókörnyezet a kivétel számos tulajdonságát alapértelmezett értékekkel tölti ki.

Ha egy metódus nem felügyelt kódban meghiúsul, kivétel továbbítható egy felügyelt kódszegmensnek. A HRESULTS and Exceptions témakör egy táblázatot tartalmaz, amely bemutatja, hogyan képezi le a HRESULTS a futtatókörnyezet kivételobjektumait.

Lásd még