C# System.ArgumentOutOfRangeException StartIndex不能小于零在服务器上,在本地主机上获取无错误
我有一个非常奇怪的问题,我正在从其他网站下载html(这并不违法) 它工作正常,但突然停止并显示此错误: System.ArgumentOutOfRangeException:StartIndex不能小于零。参数名称:System.String.InternalSubStringWithChecks处的startIndex(Int32 startIndex,Int32 length,Boolean FalwayScope)处的System.String.Substring(Int32 startIndex)处的startIndex 奇怪的是,在localhost上它仍然在工作 我知道这个错误意味着什么,以及如何处理它,但这次完全不同了C# System.ArgumentOutOfRangeException StartIndex不能小于零在服务器上,在本地主机上获取无错误,c#,indexoutofboundsexception,C#,Indexoutofboundsexception,我有一个非常奇怪的问题,我正在从其他网站下载html(这并不违法) 它工作正常,但突然停止并显示此错误: System.ArgumentOutOfRangeException:StartIndex不能小于零。参数名称:System.String.InternalSubStringWithChecks处的startIndex(Int32 startIndex,Int32 length,Boolean FalwayScope)处的System.String.Substring(Int32 start
try
{
string img_1 = startHTML.Substring(startHTML.IndexOf("img"));
img_1 = img_1.Substring(0, img_1.IndexOf("</div>"));
if (img_1.Contains("<a href="))
{
}
else
{
string img_3 = "";
string img_7 = img_1.Substring(img_1.IndexOf("src="));
string img_2 = img_7.Substring(0, img_7.IndexOf(".jpg") + 4);
img_3 = img_2.Substring(img_2.IndexOf("src=\"") + 5);
img_3 = img_3.Trim();
lastImage = img_3;
}
}
catch (Exception ee)
{
try
{
string img_1 = startHTML.Substring(startHTML.IndexOf("class=\"poster\""));
img_1 = img_1.Substring(0, img_1.IndexOf("</div>"));
if (img_1.Contains("<a href="))
{
}
else
{
string img_3 = "";
string img_7 = img_1.Substring(img_1.IndexOf("src="));
string img_2 = img_7.Substring(0, img_7.IndexOf(".jpg") + 4);
img_3 = img_2.Substring(img_2.IndexOf("src=\"") + 5);
img_3 = img_3.Trim();
lastImage = img_3;
}
lblMsg.Text = "NO IMAGE! " + Convert.ToString(ee);
}
catch(Exception eeеее)
{
lblMsg.Text = "NO IMAGE! " + Convert.ToString(eeеее);
}
}
return lastImage;
试试看
{
字符串img_1=startHTML.Substring(startHTML.IndexOf(“img”));
img_1=img_1.子字符串(0,img_1.IndexOf(“”);
if(img_1.Contains(“Ehat)”这意味着传递给搜索的文本不再包含搜索字符串,即“img”
要解决此问题,请在方法调用外部调用IndexOf,将其结果分配给变量,并在将其用作索引之前检查其-1:
var pos = string img_1 = startHTML.IndexOf("img");
if (pos >= 0) {
string img_1 = startHTML.Substring(Pos);
...
}
很明显,startHTML.IndexOf(“img”)
并没有返回一个可以替代的值,而且:首先要搜索的是我工作的公司提供的网站:。也就是说,最好阅读你正在使用的功能(以避免“缺乏研究”投票)在这种情况下,如果这是不够的,请确保提供链接到您在文章中阅读的文章,用一行解释为什么它没有解释问题。边注:您可能不应该使用字符串操作来解析HTML,尤其是如果阅读文档对您来说是个问题。请考虑HTMLaGracyPyACK或类似的HTML。改为解析器,因为至少你不需要一个接一个地处理所有这些错误。嗨,谢谢你的回答,我已经多次遇到这个错误,我知道它的意思。我不明白为什么在本地主机上它是正常的,而在服务器上突然停止是正常的。对不起,如果我没有把问题写得更清楚。谢谢你的回答,我知道什么这意味着,字符串包含“img”,问题出在其他地方。当我在本地主机上执行代码时,它是正常的,当它在服务器上时,会出现此错误。
var pos = string img_1 = startHTML.IndexOf("img");
if (pos >= 0) {
string img_1 = startHTML.Substring(Pos);
...
}