Warum löst HttpWebRequest eine Ausnahme aus, anstatt HttpStatusCode.NotFound zurückzugeben?

Ich versuche, die Existenz einer URL mithilfe von HttpWebRequest zu überprüfen. Ich habe ein paar Beispiele gefunden, die dies im Grunde tun:

<code>HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Url);
request.Method = "HEAD";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
    return response.StatusCode;
}
</code>

Wenn die URL jedoch in der Tat fehlerhaft ist, gibt sie keine Antwort zurück, sondern löst eine Ausnahme aus.

Ich habe meinen Code folgendermaßen geändert:

<code>try
{
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Url);
    request.Method = "HEAD";
    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
    {
        return response.StatusCode;
    }
}
catch (System.Net.WebException ex)
{
    var response = ex.Response as HttpWebResponse;
    return response == null ? HttpStatusCode.InternalServerError : response.StatusCode;
}
</code>

das scheint endlich zu tun was ich will.

Ich möchte jedoch wissen, warum die Anforderung eine Ausnahme auslöst, anstatt die Antwort mit einem NotFound-Statuscode zurückzugeben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage