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