Что означает исключение «Исключение из HRESULT: 0x80040653» при вызове IFeatureClass.Search в ArcObjects? - PullRequest
0 голосов
/ 04 марта 2010

Я поддерживаю приложение, построенное на ESRI ArcObjects, куда давно ушли разработчики. Приложение, после того как оно работало в течение нескольких лет, начало работать с этим исключением. Приложение работает по расписанию.

Сообщение об ошибке не очень полезно. Любые идеи, что может быть причиной ошибки?

Exception from HRESULT: 0x80040653
Date: Thursday, 4 March 2010
Time: 1:47:33 a.m.
Stack trace:    
   at ESRI.ArcGIS.Geodatabase.IFeatureClass.Search(IQueryFilter filter, Boolean Recycling)

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Вот ссылка на статью на Коды ошибок ESRI , которые можно использовать для поиска ошибки.

Полученная вами конкретная ошибка определяется как FDO_E_FIELD_NOT_FOUND, которая, как вы уже выяснили, указывает на попытку использования имени поля, которого нет в таблице.

1 голос
/ 04 марта 2010

Оказывается, ошибка была вызвана свойством IQueryFilter.WhereClause , которое передавалось в метод поиска и содержало имя поля, которого не было в классе объектов.

Было бы хорошо, если бы у сгенерированного исключения было соответствующее сообщение.Это бы сэкономило мне много времени.

...