System.IndexOutOfRangeException:索引超出数组vb.net无限循环的界限
我正在执行一个无限循环,这段代码有问题:System.IndexOutOfRangeException:索引超出数组vb.net无限循环的界限,vb.net,Vb.net,我正在执行一个无限循环,这段代码有问题: Dim infiniteCounter As Integer For infiniteCounter = 1 To 2 infiniteCounter = 1 Try Dim dataFromClient As String Dim bytesFrom(50024) As Byte Dim networkStream As NetworkStream = clientSocket.Get
Dim infiniteCounter As Integer
For infiniteCounter = 1 To 2
infiniteCounter = 1
Try
Dim dataFromClient As String
Dim bytesFrom(50024) As Byte
Dim networkStream As NetworkStream = clientSocket.GetStream()
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
Catch ex As Exception
End Try
Next
引发问题的具体行是:
Dim bytesFrom(50024) As Byte
出现以下错误:
System.IndexOutOfRangeException:索引超出了数组的边界
你知道怎么解决这个问题吗
谢谢在尝试访问数据之前,请添加一项检查,查看bytesFrom中是否有数据:
If bytesFrom IsNot Nothing AndAlso bytesFrom.Length > 0 Then
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
End If
此外,您应该将可能出现异常的任何特定行包装在try/catch中,而不是整个代码块中(例如,获取流、将其读入变量并解码字节数组)。如果您将所有异常都包含在空catch块中,您如何知道会引发异常?为什么代码是这样写的?
infiniteCounter
的目的是什么?为什么不从0开始,而不是从1开始?也许只有我,但这个问题看起来很相似: