c# est-il ok pour incorporer un “try/catch” dans une “aide” déclaration pour une requête web? Est mon code correct?

Est-il ok pour incorporer un "try/catch" dans une "aide" déclaration pour une requête web? Est mon code correct? C'est à mes exigences sont:

  1. Souhaitez utiliser l'instruction "using" pour vous assurer que les ressources sont libérées dans tous les cas, pour HttpWebResponse

    • Mais encore envie de faire quelques trucs si il y a une exception en HttpWebResponse et "réponse = (HttpWebResponse)demande.GetResponse();" en particulier.

Mon code source:

        var result = new HttpHeaderInfo();
        HttpWebRequest request = null;
        HttpWebResponse response = null;
        using (response)
        {
            try
            {
                request = (HttpWebRequest)WebRequest.Create(uri);
                request.Method = "HEAD";
                request.KeepAlive = false;
                request.Timeout = Properties.Settings.Default.WebTimeoutDefault;

                response = (HttpWebResponse)request.GetResponse();
                result.LastModified = response.LastModified;
                result.ContentType = response.ContentType;
                result.StatusCode = response.StatusCode;
                result.ContentLength = response.ContentLength;
            }
            catch (Exception ex)
            {
                if (ex is InvalidOperationException ||
                    ex is ProtocolViolationException ||
                    ex is WebException)
                {
                    result.HttpError = ex;
                    result.LastModified = System.DateTime.MinValue;
                    result.ContentType = null;
                }
                else { throw; }
            }

        }

grâce

InformationsquelleAutor Greg | 2010-02-01