Я разговариваю с COM-объектом (объект Microsoft ADO Recordset). В определенном случае набор записей вернет неудачный (то есть отрицательный) HRESULT
с сообщением:
Предмет не найден в коллекции
в соответствии с запрошенным именем или
порядковый
Я знаю, что означает это сообщение об ошибке, знаю, почему это произошло, и я знаю, как это исправить. Но я знаю эти вещи, потому что я прочитал сообщение, которое, к счастью, было на языке, который я понимаю.
Теперь я хотел бы обработать это исключение специально. COM-объект бросил HRESULT
0x800A0CC1
В идеальном мире Microsoft зарегистрировала бы , какие ошибки могут быть возвращены , когда я пытаюсь получить доступ:
records.Fields.Items( index )
с неверным индексом. Но они этого не делают; они чаще всего говорят, что ошибка может произойти, то есть:
Если Элемент не может найти объект в
коллекция, соответствующая индексу
аргумент, возникает ошибка.
Учитывая, что возвращенный код ошибки не задокументирован, правильно обрабатывать определенный код возврата `0x800A0CC1 ', когда я пытаюсь перехватить исключение:
Предмет не найден в коллекции
в соответствии с запрошенным именем или
порядковый
Поскольку Microsoft не документировала код ошибки, они технически изменят его в будущем.