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.Exception
e não dependa do texto de exceção em seu manipulador!