Поделиться через


Как COM+ изменяет возвращаемые значения

COM+ никогда не изменяет возвращаемое значение HRESULT, которое указывает на сбой, например E_UNEXPECTED или E_FAIL. Однако если объект с помощью функции COM+ возвращает значение HRESULT, указывающее на успех (например, S_OK, S_FALSE или NOERROR), COM+ иногда преобразует HRESULT в код ошибки COM+, прежде чем он возвращается вызывающему объекту.

Например, когда приложение возвращает S_OK после вызова IObjectContext::SetComplete, если объект является корнем транзакции, которая не может быть подтверждена, HRESULT преобразуется в CONTEXT_E_ABORTED.

Когда COM+ преобразует значение HRESULT, оно очищает все выходные параметры метода. Возвращенные ссылки выпускаются, а значения возвращенных указателей объектов установлены в NULL.

изоляция сбоев и политика быстрого прекращения при сбое

поиск источника ошибки

Интерпретация кодов ошибок

стратегии обработки ошибок в COM+

устранение неполадок