EDOMParseError Список кодов ошибок
Где я могу найти список EDOMParseError.ErrorCode
ценности?
Я не могу найти его в источнике Delphi или в MSDN.
Например, если я установлю XMLDocument.FileName
неправильный URL, у меня есть
Error code: -2146697210
Reason: System error: -2146697210
Где эти коды определены?
2 ответа
При использовании MSXML в качестве поставщика DOM для TXMLDocument
, EDOMParseError.ErrorCode
значение COM HRESULT
значение (MSXML реализован в виде COM-объектов). Нет единого источника, который документировал бы все возможные HRESULT
ценности. Разные модули могут определять свои собственные HRESULT
ценности.
В этом случае -2146697210 (гекс 0x800C0006) INET_E_OBJECT_NOT_FOUND
(Объект не был найден):
#define INET_E_OBJECT_NOT_FOUND _HRESULT_TYPEDEF_(0x800C0006L)
Это переводит на HRESULT
определяется через MAKE_HRESULT()
макрос с серьезностью SEVERITY_ERROR
объект FACILITY_INTERNET
и код ошибки 6:
#define INET_E_OBJECT_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_INTERNET, 6)
Этот конкретный HESULT
значение задокументировано в кодах ошибок URL Moniker. Все HRESULT
значения с возможностью FACILITY_INTERNET
принадлежат библиотеке WinInet, в которую входит модуль UrlMon. MSXML использует WinInet для загрузки удаленного контента.
Как указано в Причины, эта ошибка исходит от вашей системы.
SysErrorMessage(ErrorCode)
Должен делать то, что вы хотите.
Вызывайте SysErrorMessage, только если ошибка поступает из системы. Но теперь вам нужно выяснить, как это узнать. Проверка причины как это возможно
if reason.StartsWith('System Error') then
errorMessage := SysErrorMessage(errorCode);
Но, кажется, плохо так делать (зависит ли это от языковых настроек Windows?...)