Zpracování výjimek vzájemné spolupráce COM
Spravovaný a nespravovaný kód může spolupracovat na zpracování výjimek. Pokud metoda vyvolá výjimku ve spravovaném kódu, common language runtime může předat HRESULT objektu COM. Pokud metoda selže v nespravovaném kódu vrácením chyby HRESULT, modul runtime vyvolá výjimku, kterou může zachytit spravovaný kód.
Modul runtime automaticky mapuje HRESULT z zprostředkovatele komunikace modelu COM na konkrétnější výjimky. Například E_ACCESSDENIED se stane UnauthorizedAccessException, E_OUTOFMEMORY se stane OutOfMemoryExceptionatd.
Pokud je HRESULT vlastní výsledek nebo pokud je pro modul runtime neznámý, modul runtime předá klientovi obecný COMException výsledek. ErrorCode vlastnost COMException obsahuje HRESULT hodnotu.
Práce s IErrorInfo
Při předání chyby z modelu COM do spravovaného kódu modul runtime naplní objekt výjimky informacemi o chybě. Objekty MODELU COM, které podporují IErrorInfo a vrací HRESULTS, poskytují tyto informace výjimekm spravovaného kódu. Modul runtime například mapuje popis z chyby modelu COM na vlastnost výjimky Message . Pokud HRESULT neposkytuje žádné další informace o chybě, modul runtime vyplní mnoho vlastností výjimky výchozími hodnotami.
Pokud metoda selže v nespravovaném kódu, může být výjimka předána do spravovaného segmentu kódu. Téma HRESULTS a Výjimky obsahuje tabulku, která ukazuje, jak HRESULTS mapuje na objekty výjimek modulu runtime.