如何捕捉数组下标越界错误?

亚细亚 2008-10-09 09:56:18
我定义了一个数组strFile.
然后:
getYJ = UBound(strFile)
出现下标越界错误。如何捕捉这个错误?
...全文
245 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
laviewpbt 2008-10-09
  • 打赏
  • 举报
回复
不明白楼主的意思了
SYSSZ 2008-10-09
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Static i
Dim strFile(4)
On Error Resume Next
If i > 4 Then MsgBox "上标越界!"
x = strFile(i)

i = i + 1

End Sub
Private Sub Command2_Click()
Static i
Dim strFile(4)

If i < 0 Then MsgBox "下标越界!"
x = strFile(i)

i = i - 1

End Sub
亚细亚 2008-10-09
  • 打赏
  • 举报
回复

谢谢你的回答!
我的意思是:
现在定义了一个数组strFile,然后将记录集的一个字段值循环放入数组strFile中,如果记录集为空,那么就要捕捉数组的长度:ubound(strFile),然后分支执行另外的语句。
laviewpbt 2008-10-09
  • 打赏
  • 举报
回复

Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saArray() As Any) As Long 'API判断数组为空或没有初始化

If SafeArrayGetDim(Data) = 0 Then
IsArrayAllocated = False
Else
IsArrayAllocated = True
End If
亚细亚 2008-10-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 true_guowei 的回复:]
Public Declare Function IsNullArray Lib "oleaut32.dll" Alias "SafeArrayGetDim" (ByRef saArray() As Any) As Long                          'API判断数组为空或没有初始化
这个函数可以避免访问未初始化的数组时出现异常
比上面的回答都要实用
[/Quote]
谢谢你的回答!
我的意思是:
现在定义了一个数组strFile,然后将记录集的一个字段值循环放入数组strFile中,如何记录集为空,那么就要捕捉数组的长度:ubound(strFile),然后分支执行另外的语句。
true_guowei 2008-10-09
  • 打赏
  • 举报
回复
Public Declare Function IsNullArray Lib "oleaut32.dll" Alias "SafeArrayGetDim" (ByRef saArray() As Any) As Long 'API判断数组为空或没有初始化
这个函数可以避免访问未初始化的数组时出现异常
比上面的回答都要实用
true_guowei 2008-10-09
  • 打赏
  • 举报
回复
Public Declare Function IsNullArray Lib "oleaut32.dll" Alias "SafeArrayGetDim" (ByRef saArray() As Any) As Long 'API判断数组为空或没有初始化
这个函数可以避免访问未初始化的数组时出现异常
比上面的回答都要实用
亚细亚 2008-10-09
  • 打赏
  • 举报
回复
捕捉下标越界
亚细亚 2008-10-09
  • 打赏
  • 举报
回复
我定义了strFile数组,但还没有赋值。
SYSSZ 2008-10-09
  • 打赏
  • 举报
回复
索引大于上标或小于下标
亚细亚 2008-10-09
  • 打赏
  • 举报
回复
我采用:

On Error GoTo ww '设置错误陷阱
getYJ = UBound(strFile)
Exit Sub
ww:
If Err.Number = 9 Then
MsgBox "没有数据!", 16, "提示"
Else
MsgBox "出现其他错误!", 16, "错误"
End If
Resume Next

好像不能捕捉到错误。
true_guowei 2008-10-09
  • 打赏
  • 举报
回复
记录集为空就不能放入数组了,而是测试记录集:isnull(record)了
怎么放入数组啊?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧