0

WebClient.DownloadString の C# で StackOverflowException を取得しているようです。どうやってやったのかわからず、過去3日間起こっているので、現在少し怒っています.

基本的に私が作ったのは、たくさんのページを循環してそこからデータを抽出する Web スクレイパーでした。正確にはリンクです。このコードにヒットすると、問題がランダムに発生します。

try
{
    derp = web.DownloadString(site + pageincr);
}
catch (Exception ex)
{
    ...

Site はスクレイピング元のサイトで、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 の場合。これはかなり奇妙になっています。

4

0 に答える 0