【问题】
折腾C#的网络处理:
resp = (HttpWebResponse)req.GetResponse();
时,有时候会遇到超时的异常,需要进行处理。
【解决过程】
1.开始是用:
try { resp = (HttpWebResponse)req.GetResponse(); } catch (Exception ex) { //ex no Status }
结果发现ex没有Status的属性,所以不好弄。
2.后来参考:
System.Net.WebException http codes
得知,是用WebException,所以改为:
try { resp = (HttpWebResponse)req.GetResponse(); } catch (WebException webEx) { if (webEx.Status == WebExceptionStatus.Timeout) { } }
即可。
【总结】
在try…catch中用WebException,就可以看到:WebException 类的各种属性,包括Status了,就可以接着写自己需要的代码去处理了。