c#中未处理的异常

时间:2010-04-11 17:41:08

标签: c# exception-handling

我目前正在尝试通过终端运行网络爬虫。它编译很好,调试没有发现任何错误,但是我得到以下错误,我不明白。 关于如何摆脱这个错误的任何想法将不胜感激

Unhandled Exception: System.ArgumentOutOfRangeException: startIndex + length > this.length
Parameter name: length
at System.String.Substring (Int32 startIndex, Int32 length) [0x00000]
at OpenWebSpiderCS.mysql.executeSQLQuery (System.String SQL) [0x00000]
at OpenWebSpiderCS.db.startIndexThisSite (OpenWebSpiderCS.page p) [0x00000]
at OpenWebSpiderCS.ows.startCrawling () [0x00000]
at OpenWebSpiderCS.mainClass.Main (System.String[] args) [0x00000] 

谢谢

3 个答案:

答案 0 :(得分:1)

此异常告诉您在使用Substring函数时向其发送startIndex和Length。您发送的参数无效,因为startIndex + Length大于整个字符串的长度。

只需修改代码或检查

if (startIndex+Length < yourString.Length)

答案 1 :(得分:1)

在Visual Studio中

Ctrl+Alt+E并选择Break on Errors选项,您将看到错误位置。

答案 2 :(得分:0)

所以我有点弄清楚这个错误是怎么发生的,基本上在mysql.cs文件中它试图执行SQLQuery所在的子字符串 System.String.Substring(Int32 startIndex,Int32 length)已设置为SQL.Substring(0,1000),现在args.cs文件中存在一个定义变量长度的变量。

控制台上的读数说 startIndex + length&gt; this.length 参数名称:长度

我认为这是一个通用消息,而this.length指向args.cs文件中的变量a.length。现在有关如何纠正错误的任何想法?

我不知道我是否应该将文件粘贴在这里,因为它们可能被认为是非常大的。感谢您提供的任何帮助

可以从中下载文件 http://sourceforge.net/projects/openwebspider/files/OpenWebSpider%23/v0.1.4.1/OpenWebSpiderCS_v0.1.4.1.zip/download