Ian*_*oyd 6 com exception-handling ado
我正在与COM对象(Microsoft ADO Recordset对象)进行通信.在某种情况下,记录集将返回失败(即否定)HRESULT,并显示以下消息:
无法在与请求的名称或序号对应的集合中找到项目
我知道这个错误信息意味着什么,知道它为什么会发生,以及我如何解决它.但我知道这些事情,因为我读了这条消息,幸运的是,这是我理解的一种语言.
现在我想特别处理这个例外.COM对象引发了一个HRESULT
0x800A0CC1
Run Code Online (Sandbox Code Playgroud)
在理想的世界中,Microsoft会记录我尝试访问时可以返回的错误:
records.Fields.Items( index )
Run Code Online (Sandbox Code Playgroud)
索引无效.但他们没有; 他们最多说的是可能会发生错误,即:
如果Item无法在与Index参数对应的集合中找到对象,则会发生错误.
鉴于没有记录返回的错误代码,当我试图捕获异常时,处理特定的返回代码"0x800A0CC1" 是否正确:
无法在与请求的名称或序号对应的集合中找到项目
?
由于Microsoft没有记录错误代码,因此他们将来在技术上会对其进行更改.
他们确实记录了此错误代码,但很难找到: ErrorValueEnum:
adErrItemNotFound 3265 -2146825023 0x800A0CC1 Item cannot be found in the collection that corresponds to the requested name or ordinal.
Run Code Online (Sandbox Code Playgroud)
..因此,由于其已记录错误代码,因此可以安全地显式测试它。
| 归档时间: |
|
| 查看次数: |
1154 次 |
| 最近记录: |