C# 程序类正在捕获I';我已经抓到了

C# 程序类正在捕获I';我已经抓到了,c#,try-catch,C#,Try Catch,我发现了错误 InvalidArgument=值“4”对“索引”无效 在 Intelletrace将我带到以下代码: for (int i = 0; i < 20; i++) { try { if (dataBase.tagInclude.Count() == 0) { commonTags.Add(data

我发现了错误

InvalidArgument=值“4”对“索引”无效

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;
            }
        }
这段代码唯一的不同之处是使用listviewitem标记而不是textbox.text调用dataBase.Tag()函数。

您正在捕获:

IndexOutOfRangeException
ArgumentOutOfRangeException
但被抛出的是:

 InvalidArgument

…根据你帖子中的信息。看起来函数需要一个数字,而您正在传入一个字符或字符串。捕获抛出的异常。

“而且它刚刚开始执行此操作,但是此代码已经运行了一段时间,我最近没有更改它。”-您向应用程序添加或更改了代码;该添加/更改可能会导致不必要的副作用。在您更改的方法中设置一个断点,并逐步检查代码,看看是否可以确定发生了什么。这正是我正在做的,但即使经过数百次步骤,我也无法确定问题是什么,没有发生异常情况。调试器说应用程序正在抛出InvalidArgument。该代码块正在抛出Run和ArgumentOutOfRangeException。如果我为InvalidArgument添加一个catch,我只会得到一个错误,编译器不知道那是什么。添加System.ArgumentException的捕获不会改变任何内容。您应该编辑帖子,以包含异常的确切文本以及引发异常的精确行。
IndexOutOfRangeException
ArgumentOutOfRangeException
 InvalidArgument