Ist es in Ordnung, eine "try/catch"-Anweisung in eine "using"-Anweisung für eine Webanfrage einzubetten? Ist mein Code korrekt? Das heißt, meine Anforderungen sind:
-
Möchten Sie die Anweisung "using" verwenden, um sicherzustellen, dass Ressourcen in jedem Fall für HttpWebResponse freigegeben werden
- Aber noch wollen einige benutzerdefinierte Sachen zu tun, wenn es eine Ausnahme re HttpWebResponse und "Antwort = (HttpWebResponse)request.GetResponse();" im Besonderen.
Mein Quellcode:
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; }
}
}
danke