说明:在form中有一个文本框(TextBox)
在这个文本框里输入16进制的数字,以空格分隔
例如:00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
以下函数,读出数据并解码,将其输入到一个byte的数组
当输入的是01 02的时候 监视sendStrArray = {string[2]}
[0]="01"
[1]="02"
当输入的是01 02 的时候,和上次的差别在于末尾多了一个空格监视sendStrArray = {string[3]}
[0]="01"
[1]="02"
[2]=""
运行到 value = Convert.ToInt32(aStrByteData, 16);
抛出异常
[System.ArgumentOutOfRangeException] = {"索引超出范围。必须为非负值并小于集合大小。\r\n参数名: startIndex"}
StackTrace = " 在 System.ParseNumbers.StringToInt(String s, Int32 radix, Int32 flags, Int32* currPos)\r\n 在 System.Convert.ToInt32(String value, Int32 fromBase)\r\n 在 WindowsFormsApplication1_TCPIP1.Form1.PrepareDataToSqlServer() 位置 d:\\用户目录\\我的文档\\visual studio 20...
private void PrepareDataToSqlServer()
{
Int32 iPoint = 0;
int value = 0;
try
{
m_byteArrayWorkInstructionDataDataPart = new Byte[5136];
string[] sendStrArray = new string[8192];
string sendStr = textBoxServerSend.Text;//文本框的字符
sendStrArray = sendStr.Split(' ');//用空格键分割
foreach (string aStrByteData in sendStrArray)
{
value = Convert.ToInt32(aStrByteData, 16);
m_byteArrayWorkInstructionDataDataPart[iPoint] = (byte)value;
iPoint++;
}
}
catch (Exception eException)
{
}
}
请教如何在代码中处理和防止这种异常?