如何处理网络异常的浅见
?
? ?? 虽然说网络连接在大多数情况下,都是正常的,但大家在互联网上冲浪的时候,肯定都遇到过网络不正常的情况,比如大家在上XX网站的时候,经常会被提示:该网站暂不可用/该访问被拒绝/找不到该网站等等,你懂得。因此,网络是不可靠的,我们在网络编程的时候,也要时刻记住,网络是不可能一直正常的,在实现任何涉及网络连接的功能时,都必须考虑到如何处理各种网络异常。比如,有两个业务系统A和B,A需要调用B的某个服务,那么我们在设计和实现这个功能的时候,就不能认为系统A总是能够成功连接上系统B,并且还能成功从系统B返回其所需要的数据。合理的思维流程应该是这样的:我们把系统A调用系统B的服务这一过程细分为以下几个阶段:
??? 在这上面的四个阶段1, 2, 4都可能会发生各种IOException,在阶段1中,系统A在请求连接系统B的时候,可能发送以下异常:UnknownHostException,UnknownServiceException或者PortUnreachableException等;在阶段2和4中,就可能发生SocketTimeoutException等。
?
???? 既然我们知道网络是不稳定的,会发生各种异常情况,那么我们要做的除了捕获这些异常,更重要的是还要处理这些异常。同样以我们浏览XX网站为例,当我们发现XX网站不能访问时,无非采取以下做法:
隔一段时间刷新下页面,看是不是能访问了看看是不是这个网站被屏蔽了,需要启用代理来访问看看是不是这个网站的域名变更了既然上不了,那哥就不上了,你爱咋咋得;既然上不了,拿哥通过google/baidu找另外的XX网站???? 那么我在网络编程的时候遇到上面提到的各种IOException,采取的措施无非也是这几个做法的抽象而已。
?
?
??? 以上就是对网络异常的认识以及处理方法的一点自己的总结,记录下来,以便以后查看和改进。
?
?
?