COM: How to handle a specific exception?

Posted by Ian Boyd on Stack Overflow See other posts from Stack Overflow or by Ian Boyd
Published on 2010-06-01T17:42:14Z Indexed on 2010/06/01 18:23 UTC
Read the original article Hit count: 426

i'm talking to a COM object (Microsoft ADO Recordset object). In a certain case the recordset will return a failed (i.e. negative) HRESULT, with the message:

Item cannot be found in the collection corresponding to the requested name or ordinal

i know what this error message means, know why it happened, and i how to fix it. But i know these things because i read the message, which fortunately was in a language i understand.

Now i would like to handle this exception specially. The COM object threw an HRESULT of

0x800A0CC1

In an ideal world Microsoft would have documented what errors can be returned when i try to access:

records.Fields.Items( index )

with an invalid index. But they do not; they most they say is that an error can occur, i.e.:

If Item cannot find an object in the collection corresponding to the Index argument, an error occurs.

Given that the returned error code is not documented, is it correct to handle a specific return code of `0x800A0CC1' when i'm trying to trap the exception:

Item cannot be found in the collection corresponding to the requested name or ordinal

?

Since Microsoft didn't document the error code, they technically change it in the future.

© Stack Overflow or respective owner

Related posts about best-practices

Related posts about com