Обработка ошибок com+ Администратор istration
Ошибки, создаваемые при использовании COM Администратор объектов, сообщаются двумя способами следующим образом:
- Использование кодов ошибок, относящихся к библиотеке COM Администратор.
- Использование расширенных сведений об ошибках, доступных в специальной коллекции ErrorInfo .
Коды ошибок
Коды ошибок администрирования обрабатываются как любое сообщение об ошибке COM. В Microsoft Visual C++эти коды возвращаются в виде значений HRESULT . В Microsoft Visual Basic они создаются в виде исключений, которые можно поймать. Для программистов C++ коды ошибок администрирования COM+ определены в Winerror.h. Для программистов Visual Basic они доступны через интегрированную среду разработки Visual Basic.
Коллекция ErrorInfo
При возникновении ошибки, сигнализируют с помощью какого-либо кода сбоя, более подробные сведения могут быть доступны в зависимости от характера ошибки. Объекты COM Администратор предоставляют расширенную информацию в ситуациях, когда точные причины сбоя трудно определить без подробного отчета, например с несколькими операциями чтения и записи.
Например, при использовании таких методов, как Заполнение и SaveChanges в объекте COM Администратор CatalogCollection, можно читать или записывать данные для каждого элемента в коллекции. Сложные ошибки могут возникать, и их может быть трудно диагностировать на основе одного числового кода ошибки. Таким образом, библиотека COM Администратор делает расширенные сведения об ошибках через специальную коллекцию.
Если доступна расширенная информация об ошибке, она помещается в коллекцию ErrorInfo , связанную с исходной коллекцией, которая имела ошибку. Чтобы получить отчет об ошибке, получите коллекцию ErrorInfo , связанную с исходной коллекцией, и проверьте элементы, содержащиеся в ней. Коллекцию ErrorInfo можно получить с помощью GetCollection на COM Администратор CatalogCollection, оставив второй параметр пустым, где обычно указывается свойство ключа родительского элемента.
При возникновении ошибки необходимо немедленно получить и заполнить коллекцию ErrorInfo для коллекции, которая завершилась сбоем, без выполнения других операций с этой коллекцией. В противном случае коллекция ErrorInfo сбрасывается и не содержит подробных сведений об этом сбое.
Элементы в коллекции ErrorInfo предоставляют специальные свойства отчетов об ошибках MajorRef и MinorRef, которые подробно описывают конкретную причину ошибки. Дополнительные сведения см. в разделе ErrorInfo.
См. также