Eu tenho o seguinte código:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "HEAD";
request.Credentials = MyCredentialCache;
try
{
request.GetResponse();
}
catch
{
}
Como posso detectar um erro 404 específico? O WebExceptionStatus.ProtocolError só pode detectar a ocorrência de um erro, mas não fornece o código exato do erro.
Por exemplo:
catch (WebException ex)
{
if (ex.Status != WebExceptionStatus.ProtocolError)
{
throw ex;
}
}
Simplesmente não é útil o suficiente ... a exceção de protocolo pode ser 401, 503, 403, qualquer coisa na verdade.
throw ex, você gerará uma nova exceção com uma pilha de chamadas vazia. Basta usar throw.
WebRequest
System.Exceptione não dependa do texto de exceção em seu manipulador!