我目前正在尝试通过终端运行网络爬虫。它编译很好,调试没有发现任何错误,但是我得到以下错误,我不明白。 关于如何摆脱这个错误的任何想法将不胜感激
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]
谢谢
答案 0 :(得分:1)
此异常告诉您在使用Substring函数时向其发送startIndex和Length。您发送的参数无效,因为startIndex + Length大于整个字符串的长度。
只需修改代码或检查
if (startIndex+Length < yourString.Length)
答案 1 :(得分:1)
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。现在有关如何纠正错误的任何想法?
我不知道我是否应该将文件粘贴在这里,因为它们可能被认为是非常大的。感谢您提供的任何帮助