尽管我几乎完成了,但这段代码并不能准确地完成我想要做的事情。有没有办法在这个catch块中捕获特定的错误代码403?
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError)
{
Logger.Error(e.ToString());
Console.ReadKey(true);
return;
}
throw;
}发布于 2018-04-24 12:20:19
您可以更改代码以检查状态,如下所示:
catch (WebException e)
{
if (e.Status == WebExceptionStatus.ProtocolError
&& (HttpWebResponse)e.Response).StatusCode == HttpStatusCode.Forbidden)
{
Logger.Error(e.ToString());
Console.ReadKey(true);
return;
}
throw;
}但是,由于您只是在不禁止的情况下重新抛出,并且假设您使用的是C# 6或更高版本,您可以将您的catch设为如下条件:
try
{
// code
}
catch (WebException e)
when (e.Status == WebExceptionStatus.ProtocolError
&& (HttpWebResponse)e.Response).StatusCode == HttpStatusCode.Forbidden)
{
Logger.Error(e.ToString());
Console.ReadKey(true);
return;
}https://stackoverflow.com/questions/49993290
复制相似问题