Обработка ошибок в COM (COM)
Почти все функции COM и методы интерфейса возвращают значение типа HRESULT. HRESULT (имя можно считать как "результирующий дескриптор") — это способ возврата успешного, предупреждения или значения ошибки. HRESULT на самом деле не является дескриптором (см. Почему HRESULT начинается с H, когда это не дескриптор?); это просто значение с несколькими полями, закодированными в него. Согласно спецификации COM, результат нуля указывает на успешность, а ненулевой результат указывает на сбой.
На уровне исходного кода все значения ошибок состоят из трех частей, разделенных подчеркиванием. Первая часть — это префикс, определяющий объект, связанный с ошибкой, вторая часть — E для ошибки, а третья — строка, описывающая фактическое условие. Например, STG_E_MEDIUMFULL возвращается, если на жестком диске нет места. Префикс stG указывает хранилище, E указывает, что код состояния представляет ошибку, а MEDIUMFULL предоставляет конкретные сведения об ошибке. Многие значения, которые может потребоваться вернуть из метода интерфейса или функции, определяются в Winerror.h.
Дополнительные сведения об обработке ошибок см. в следующих разделах:
- структура кодов ошибок COM
- коды в FACILITY_ITF
- использование макросов для обработки ошибок
- обработка ошибок COM в Java и Visual Basic
- стратегии обработки ошибок
- обработка неизвестных ошибок
Связанные разделы