1

多くのパスの例を持つ単一の URL をスキャンしています: http://url.com/path1to 1000。時々 WebException が発生しますが、catch ブロックではNullReferenceException、行を使用しないとエラーがスローされます

if (x.Status == WebExceptionStatus.ProtocolError && x.Response != null)

だから私の質問はこれです: 以下のコードはエラーを修正しますか、それとも単に無視しますか?

もう1つ、エラーが発生しない場合もあればエラーが発生する場合もありますが、ほとんどの場合エラーが発生しますが、以下のコードを使用するとすべて正常に動作します。

catch (WebException x)
{
    if (x.Status == WebExceptionStatus.ProtocolError && x.Response != null)
    {
        HttpWebResponse response = (HttpWebResponse)x.Response;
        if (response.StatusCode == HttpStatusCode.NotFound)
        {
           listBox3.Items.add(listBox1.Items[i].ToString());
        }
    }
}
4

1 に答える 1

1

以下のコードはエラーを修正しますか、それとも単に無視しますか

応答が null かどうかを確認しても問題ありません。応答が null になる可能性があるため、これが正しい方法です。

応答がnullになる可能性がある場合、これはMSDNが言うことです

インターネット リソースから応答を取得できる場合は、インターネット リソースからのエラー応答を含む WebResponse インスタンス。それ以外の場合は null。

于 2013-08-29T05:48:27.140 に答える