我似乎在 WebClient.DownloadString 上的 C# 中得到了 StackOverflowException。我不知道我是怎么做到的,它目前让我有点生气,因为它在过去三天一直在发生。
基本上我所做的是一个网络爬虫,它循环浏览大量页面并从中提取数据,准确地说是链接。当它碰到这段代码时,问题随机出现:
try
{
derp = web.DownloadString(site + pageincr);
}
catch (Exception ex)
{
...
站点是要从中抓取的站点,而 pageincr 是它要到达的页面。所以它获取数据,处理它,然后如果 pageincr 不大于最大页面集,它将增加 pageincr 然后再次启动该函数。但在最随机的时刻,它会在上面的代码中停止,并出现错误“StackOverflowException”。让我感到奇怪的是,它发生在 DownloadString 函数上,而且是随机发生的。如果它是一个真正的 StackOverflow,它不会立即停止代码吗?
如果有可能阻止这种情况,请告诉我。
编辑: 似乎它只是在这段代码上停止了它:
this.Invoke((Action)delegate
{
console.SelectionFont = new Font(console.Font, FontStyle.Bold);
appendConsole("\r\n===[ Page: " + pageincr + " ]===");
console.SelectionFont = new Font(console.Font, FontStyle.Regular);
});
对于 StackOverflowException。这变得很奇怪。