我收到错误
InvalidArgument ='4'的值对'index'无效。
在
Application.Run(new Form1());
Intelletrace接受了我的代码:
for (int i = 0; i < 20; i++)
{
try
{
if (dataBase.tagInclude.Count() == 0)
{
commonTags.Add(dataBase.set.Tables["tagTable"].Select("tag like '*'", "count desc")[i]["tag"].ToString());
}
else
{
commonTags.Add(dataBase.tagPruneList[i].tag);
}
}
catch (IndexOutOfRangeException)
{
break;
}
catch (ArgumentOutOfRangeException)
{
break;
}
}
错误在catch (ArgumentOutOfRangeException)
如果我没有抛出异常,我不明白为什么会这样做。它也刚刚开始这样做,但这段代码已经工作了一段时间,我最近没有改变它。当我对它进行编码以便它不会抛出错误时,它就会使用不同代码行执行相同的操作,而这些代码行的工作时间更长。
我添加的代码似乎非常无害且无关:
public static void itemChecked(ListViewItem lvi)
{
if (supressChecks) return;
if (!lvi.Checked)
{
dataBase.Tag(lvi.Tag.ToString());
}
else
{
}
}
此代码唯一不同的做法是使用listviewitem标记而不是textbox.text调用dataBase.Tag()函数。
答案 0 :(得分:1)
你正在追赶:
IndexOutOfRangeException
ArgumentOutOfRangeException
但是被抛出的是:
InvalidArgument
...根据你帖子中的信息。它看起来像一个函数期待一个数字,你传递一个字符串或字符串。抓住抛出的异常。